1

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

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

另一部分看起来也很好用,但是一旦完成,它就会挂断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 行,但我需要能够处理几千行而不需要一天的时间来运行。

提前致谢!

4

1 回答 1

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
于 2013-11-13T15:01:38.550 回答