根据具有循环的单元格中的值删除整行

时间:2019-02-05 16:55:58

标签: excel vba

我正在尝试编写一个宏/ vba,它将检查我的Excel工作表中的12-451行。如果列“ H”(在任何所述行中)包含零值,则应删除该行。

Excel将用于上传程序,并且在“ H”列中不能有任何零值

我记录了一个宏,该宏用所需的数据填充了第12-451行(列“ A”至“ H”),但是我可以添加到宏的代码段有问题(最后)它将循环返回并删除“ H”列中任何值为零的行。

我试图记录“删除”宏,但无法弄清楚如何使代码循环遍历每一行并删除具有零值的代码。

  • 注意-列“ H”值将随数值数据而变化,数值数据中的零(即100,341.00)将包含零。该值应保留。只有那些仅包含“ 0”的单元格才应消除。括号不包含在上传表格中...

请让我知道是否需要更多信息。

2 个答案:

答案 0 :(得分:0)

尝试一下:

Sub HKiller()
    For i = 451 To 12 Step -1
        If Cells(i, "H").Value = 0 Then Rows(i).Delete
    Next i
End Sub

请注意,我们从头到尾都在工作,以避免出现索引问题。

答案 1 :(得分:0)

我正在尝试相同的操作,即,如果两列单元格中的任何一个具有“ 0”,则删除列,然后删除该行。我已经修改了上面的代码。请提出来。

    Sub test()
    Dim Lastrow As Long, i As Long
    'LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column

    With ThisWorkbook.Worksheets("Sheet1")

    Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row

    For i = 0 To Lastrow Step 1
        If Cells(i, "E" Or "F").Value = 0 Then Rows(i).Delete
        Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
    Next i
    End With
End Sub

谢谢