如果重复项多于2个,则删除整个行

时间:2019-02-08 19:19:48

标签: excel vba

Before After

我看过的东西可能很简单,但我想我需要一些新鲜的眼睛。我已经设置了一个公式,将重复项设置为“ 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

1 个答案:

答案 0 :(得分:1)

删除行时,应从末尾开始,然后朝顶部工作。您只需要将For循环更改为

For d = lr to 2 Step -1

如果使用 F8 逐步浏览代码,则会发现删除一行时,它下面的该行将成为“当前行”。然后,您的代码将立即移至下一个行,而无需检查您弹出的行。

从头到尾的工作避免了这个问题。