Vba 自动筛选后删除空行
我的Excel工作表中有以下代码: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
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:干得好!!