我有这个程序正在寻找Col D中任何单元格,其中值以“net”结尾,然后它将删除整个行/行。但它不会删除值以“net”结尾的所有行。我没有想法。
Sub DeleteRows_net()
Application.ScreenUpdating = False
Dim rng As Range
For Each rng In Range("D4:D2700")
If InStr(1, rng.Value, "net") > 0 Then
rng.EntireRow.Delete
End If
Next rng
End Sub
答案 0 :(得分:2)
这是一个常见的错误......当你循环删除时,你必须从最后一个元素开始向第一个方向开始。将循环更改为:
Dim i%
For i=2700 to 4 Step -1
If InStr(1, Cells(i, "D").Value, "net") > 0 Then
Cells(i, "D").EntireRow.Delete
End If
Next i
顺便说一句......不要忘记在程序结束前将Application.ScreenUpdating = True
放在某处!