在自动过滤的视图中,如果我需要删除过滤的行,请使用
Sub deleteFiltered()
ActiveSheet.AutoFilter.Range.Offset(1, 0).Rows.SpecialCells(xlCellTypeVisible).Delete (xlShiftUp)
End Sub
,它像我期望的那样工作。
但是我什至意识到如果我处理一个“真实”表,这是行不通的。如何删除表中已过滤的行?
答案 0 :(得分:1)
将此表想象为ListObject
。
样本数据:
示例代码:
Sub DeleteFilteredRows()
With Sheet1 'Change according to your own sheets CodeName
With .ListObjects("Table1").DataBodyRange 'Change to name of your table
.AutoFilter
.AutoFilter Field:=2, Criteria1:="B" 'Sample filter applied
.EntireRow.Delete
.AutoFilter
End With
End With
End Sub
结果: