循环挂在VBA中

时间:2013-11-13 14:36:20

标签: excel vba excel-vba while-loop

我有一小段代码标记重复项并删除工作表中的行。

标识重复项的部分只是在“J列”的数据右侧添加了“Duplicate”一词,该部分似乎正常工作。

其他部分看起来也可以正常工作,但一旦完成它只是挂起excel而我必须强行关闭它。以下是删除部分的代码:

While Not IsEmpty(Range("J2:J" & InvLast))
        For InvList = 2 To InvLast
            If Range("J" & InvList).Value = "Duplicate" Then
                Range("J" & InvList).EntireRow.Delete
            End If
        Next InvList
Wend

我正在研究的测试文件中的InvLast只有28行,但是我需要能够处理几千行,而不需要花一天的时间来运行。

提前致谢!

1 个答案:

答案 0 :(得分:1)

摆脱While循环,并使用此方法,以便您不会跳过行:

Sub deleteDuplicates()
    For InvList = InvLast To 2 Step -1
            If Range("J" & InvList).Value = "Duplicate" Then
               Range("J" & InvList).EntireRow.Delete
            End If
    Next InvList
End Sub