0

我有这个程序正在寻找 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
4

1 回答 1

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在程序结束前放置某个地方!

于 2013-03-19T21:57:42.853 回答