如果特定工作表中的单元格等于特定值,则删除该行

use*_*099 2 excel vba excel-vba

我正在检查范围内的所有细胞.如果单元格的值等于0(该值由公式生成),则删除该行.

Sub CleanJunk()
    For Each c In Worksheets("testsheet").Range("B33:B533").Cells
        If c.Value = "0" Then Rows(c.Row).EntireRow.Delete
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

现在模块运行没有任何错误.它只是没有做任何事情.没有任何行以任何方式被删除或受到影响.

Ror*_*ory 5

您没有限定Rows呼叫,您需要向后循环:

Sub CleanJunk()
  Dim n as long
    for n = 533 to 33 step -1
    If Worksheets("testsheet").Cells(n, "B").Value2 = 0 Then Worksheets("testsheet").Rows(n).EntireRow.Delete
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)