我看过的东西可能很简单,但我想我需要一些新鲜的眼睛。我已经设置了一个公式,将重复项设置为“ K”保留或“ D”删除。如果只有2个重复项,则工作正常,但如果有3个或更多,它将仅删除1个重复项,剩下的重复。任何帮助将不胜感激!
Set wsl = ActiveWorkbook.Worksheets(1)
lr = wsl.Range("A" & wsl.Rows.Count).End(xlUp).Row
For d = 2 To lr
If wsl.Range("J" & d).Value Like "*D*" Then
wsl.Range("J" & d).EntireRow.Delete
Else
End If
Next d
答案 0 :(得分:1)
删除行时,应从末尾开始,然后朝顶部工作。您只需要将For
循环更改为
For d = lr to 2 Step -1
如果使用 F8 逐步浏览代码,则会发现删除一行时,它下面的该行将成为“当前行”。然后,您的代码将立即移至下一个行,而无需检查您弹出的行。
从头到尾的工作避免了这个问题。