如果多个单元格为零,则删除行

时间:2014-04-23 17:32:08

标签: excel-vba vba excel

我有多个Excel工作簿,其中包含大约8,000行,因此使用宏会很好。

基本上,如果任何行在所有列(同时)中都有零(0),则它将删除B,D,E,I,J和K.

到目前为止,这是我所拥有的......用VB来解决这个问题。

Sub DeleteRowsZeros()
    Dim LR As Long, i As Long
    LR = Range("A" & Rows.Count).End(xlUp).Row
    For i = LR To 1 Step -1
        If (Range("B") = "0" And Range("D" & i) = "0" And Range("E" & i) = "0" And Range("I" & i) = "0" _
        And Range("J" & i) = "0" And Range("K" & i) = "0") Then Rows(i).Delete
    Next i
End Sub

1 个答案:

答案 0 :(得分:0)

试试这个:

Sub DeleteRowsZeros()
    Dim cell As Range, notZeroColumns As Range, row As Range

    Set row = Range("A" & Rows.Count).End(xlUp).EntireRow.Offset(1, 0)
    Set notZeroColumns = Range("B:B,D:E,I:k")

    While row.row <> 1
        Set row = row.Offset(-1, 0)

        For Each cell In Intersect(row, notZeroColumns)
            If cell.Text <> "0" Then GoTo continueLbl
        Next

        row.Offset(1, 0).Delete
continueLbl:
    Wend
End Sub

编辑:bugfixe