Vba 自动筛选后删除空行

Vba 自动筛选后删除空行,vba,excel,autofilter,Vba,Excel,Autofilter,我的Excel工作表中有以下代码: Sub DeleteRows 'Filter CMReport to delete (Blank) rows. With ActiveSheet .AutoFilterMode = False .Range("A1:G1").AutoFilter .Range("A1:G1").AutoFilter Field:=1, Criteria1:="=" .Range("A1:G1").Offs

我的Excel工作表中有以下代码:

Sub DeleteRows
'Filter CMReport to delete (Blank) rows.
    With ActiveSheet
        .AutoFilterMode = False
        .Range("A1:G1").AutoFilter
        .Range("A1:G1").AutoFilter Field:=1, Criteria1:="="
        .Range("A1:G1").Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With
End Sub

将过滤空白行,但不会删除它们。它表示未选择任何行。我做错了什么。

我会这样做:

Sub DeleteRows()
    With ActiveSheet
        .AutoFilterMode = False 'remove filter             
        With .Range("A:G")
            .AutoFilter Field:=1, Criteria1:="="
            On Error Resume Next ' for the case when there is no visible rows
            .Resize(.Rows.Count - 1).Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
            On Error GoTo 0
        End With            
        .AutoFilterMode = False 'remove filter
    End With
End Sub

如果您只需删除列A中带空格的行,则无需进行筛选,只需执行以下操作:

Sub DeleteRows()
    Range("A:A").Cells.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

如果筛选条件总是
Criteria1:=“=”
,这是一个很好的观点!仍然不工作。。。我有一个表a:G列,当我过滤表时,它在底部留下的行只有F列和G列中的数据。我可以过滤a列(如上所述)来查找行,但我不知道如何删除它们。我终于让它工作了,但我不得不使用以下代码:
Sht.columns(“E:E”).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
@Justin_DavieHigh:干得好!!