删除行直到cell =“Total”

时间:2014-06-03 15:31:52

标签: excel vba excel-vba row

我想用这个宏删除最后一行空行后的所有单元格,直到列“E”中的行为“Total”

我试过这个,但是循环线上有错误:

    Sub delete()

    Dim r As Range
    Dim lastRow As Long
        Dim c As Range
    Dim i As Long
        i = lastRow + 1

        With ThisWorkbook.Worksheets("Sheet1")
            lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
       End With
    Do
    Set r = Range("B" & i)
        If Len(r) = 0 Then r.EntireRow.delete
    i = i + 1

    Loop Until Cells(i, 5).Value = "Total"

    End Sub

以下是我的表格的示例:

Sheet example

1 个答案:

答案 0 :(得分:1)

我会使用以下内容继续浏览所有单元格,直到E&i =总计:

Public Sub Delete()

Dim i As Long

i = 2 'Start from row 2

Application.ScreenUpdating = False

With ThisWorkbook.Worksheets("Sheet1")

    Do Until .Range("E" & i).Value = "Total"
        If .Range("B" & i).Value = vbNullString Then
            .Rows(i).EntireRow.Delete
        Else
            i = i + 1 'Only increment if the row hasn't been deleted to prevent skipping rows
        End If
    Loop

End With

Application.ScreenUpdating = True

End Sub
相关问题