我有一小段代码标记重复项并删除工作表中的行。
标识重复项的部分只是在“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行,但是我需要能够处理几千行,而不需要花一天的时间来运行。
提前致谢!
答案 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