(VBA)调试模式和正常运行模式的不同结果

(VBA)调试模式和正常运行模式的不同结果,vba,debugging,execute,Vba,Debugging,Execute,现在我正在尝试一种VBA实践,但我发现调试模式和正常运行模式(F5)之间有不同的结果 我想使填充单元格的颜色向右移动,以便在调试模式下运行时效果良好,但正常运行模式不能提供相同的效果 我不明白为什么相同的代码会产生不同的结果。谢谢你的帮助 Option Explicit Sub Wave() Dim StartRow As Integer, StartColumn As Integer, Width As Integer, Height As Integer Dim i As Integer

现在我正在尝试一种VBA实践,但我发现调试模式和正常运行模式(F5)之间有不同的结果

我想使填充单元格的颜色向右移动,以便在调试模式下运行时效果良好,但正常运行模式不能提供相同的效果

我不明白为什么相同的代码会产生不同的结果。谢谢你的帮助

Option Explicit

Sub Wave()

Dim StartRow As Integer, StartColumn As Integer, Width As Integer, Height As Integer
Dim i As Integer, j As Integer, k As Integer
Dim FirstColumn As Range, LastColumn As Range

StartRow = 1
StartColumn = 1
Width = 112
Height = 50
    
Range(Cells(StartRow, StartColumn), Cells(Height, Width)).Select
Selection.RowHeight = 10
Selection.ColumnWidth = 1

For i = 1 To Height
    For j = 1 To Width
        Cells(i, j).Interior.ColorIndex = (i + j) Mod 56 + 1 '
    Next j
Next i

For k = 1 To Width
    Columns(Width).Select
    Selection.Cut
    Columns(1).Select
    Selection.Insert Shift:=xlToRight
Next k

End Sub

开始。我也试图避免使用
select
activecell
,但通过这种方式,我无法实现剪切粘贴的相同效果,因此我应该不情愿地使用
select
。但是我会参考你给我的链接再试一次。非常感谢。使用对象时,定义了两个范围变量,但从未使用过它们。要避免选择,请尝试以下操作:而不是:
列(宽度)。选择
选择。剪切
列(1)。选择
选择。插入Shift:=xltorRight
使用:
与Wsh一起使用工作表对象
。列(宽度)。剪切
列(1).Insert Shift:=xlToRight
开始结束。我也试图避免
select
activecell
,但用这种方法剪切粘贴时,我没有实现同样的效果,所以我应该不情愿地使用
select
。但是我会参考你给我的链接再试一次。非常感谢。使用对象时,定义了两个范围变量,但从未使用过它们。要避免选择,请尝试以下操作:而不是:
列(宽度)。选择
选择。剪切
列(1)。选择
选择。插入Shift:=xltorRight
使用:
与Wsh一起使用工作表对象
。列(宽度)。剪切
列(1).插入移位:=xlToRight
结束于