如果一张工作表与其他工作表工作不正常,则Excel

如果一张工作表与其他工作表工作不正常,则Excel,excel,vba,Excel,Vba,我发现这个循环在过去已经运行了很多次。它所做的一切都是查看前一个单元格,如果单元格中的值不同,它将插入一行。代码如下 Dim lr As Integer lr = Cells(Rows.Count, 1).End(xlUp).Row Application.ScreenUpdating = False For i = lr To 2 Step by - 1 If Cells(i, 8).Value > Cells(i - 1, 8).Value Then Cells

我发现这个循环在过去已经运行了很多次。它所做的一切都是查看前一个单元格,如果单元格中的值不同,它将插入一行。代码如下

Dim lr As Integer
lr = Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For i = lr To 2 Step by - 1
    If Cells(i, 8).Value > Cells(i - 1, 8).Value Then
        Cells(i, 8).EntireRow.Insert
    End If
Next i
Application.ScreenUpdating = True
End Sub
对于这个特定的工作表,当前所做的是在第一次迭代之后停止,并且不继续循环。代码正在搜索的列是最后一列(第8列),第一列只是一个列表,用于对从1到“lr”(最后一行)的行进行计数

例如:

有人知道它为什么在第一次迭代后停止吗


谢谢

您是否将源代码复制粘贴到上面或键入?我这样问是因为上面的代码在循环中有一个输入错误:注意空格
steppy-1
。与单元格相同
单元格(i-1,8)
图像显示空间。它在第177行和第176行之间插入一行,该行对应于ID#176和175。我还从保存代码的文件中复制了代码,所以我知道它以前工作过。@Alan-奇怪的是,禁用了Option Explicit,该代码实际上运行了。显然,by被认为是一个未声明的var,其实例化为数字为零,因此
逐步-1
步骤-1
相同。
i-1
是故意的,因为它指的是i上面的行。@Jeeped@stephen wyka by未在步骤语法中使用。对于Words=10到1的步骤-1,它应该是
,这就是为什么它被认为是一个变量,并在Option Explicit关闭的情况下运行。@Jeeped在我的眼睛上看到了一个错误匹配。