Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何定位以“结束”结尾的单元格值;净额;并在Excel VBA中删除行_Excel_Vba - Fatal编程技术网

如何定位以“结束”结尾的单元格值;净额;并在Excel VBA中删除行

如何定位以“结束”结尾的单元格值;净额;并在Excel VBA中删除行,excel,vba,Excel,Vba,我有一个程序,它在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

我有一个程序,它在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

这是很常见的错误。。。当您循环删除时,您必须从最后一个元素开始,并将方向指向第一个元素。将循环更改为:

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.screenUpdate=True
放在过程结束前的某个地方

比法拉利F12更快。你的解决方案非常有效。非常感谢。不客气。。。你可以把它标记为解决了,不打扰其他有帮助的人。我正在努力克服的一个小小的补充。我添加了一个子字符串来搜索“net”和“com”,但它不起作用。如果InStr(1,单元格(i,“D”).Value,“net”,“com”)>0,则更改为:
如果InStr(1,单元格(i,“D”).Value,“net”)>0或InStr(1,单元格(i,“D”).Value,“com”)>0,则问题已解决。再次感谢你,我感谢你的帮助。