如何在Excel VBA中找到以“net”结尾并删除行的单元格值

时间:2013-03-19 21:30:26

标签: excel-vba vba excel

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

1 个答案:

答案 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放在某处!