首页 > 解决方案 > 根据颜色过滤后删除突出显示的空白行

问题描述

我有一个数据集,其中有很多空白突出显示的行。我已经录制并获得了脚本来帮助我删除所需的行。

但是,由于宏只记录了您选择的内容,因此在代码中它给出了我选择的行号。现在,如果行号始终保持不变,则此方法有效。由于数据顺序可能会不时更改,我想知道脚本是否会自动选择对特定行的引用,而只是自动选择标题之后的直接行。

这是代码。对于行'rows(5:5).Select',行号可以不断变化。

ActiveSheet.Range("$A$1:$O$2000").AutoFilter Field:=15, Criteria1:=RGB(180, _
    180, 191), Operator:=xlFilterCellColor
rows("5:5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp

标签: excelvba

解决方案


假设空白行是过滤后显示的行,这将起作用。

With ActiveSheet.Range("$A$1:$O$2000")
    .AutoFilter Field:=15, Criteria1:=RGB(180,180, 191), Operator:=xlFilterCellColor
    On Error Resume Next 'only using this line in case there are no blank rows after filter
    .SpecialCells(xlCellTypeVisible).EntireRow.Delete
    On Error Go To 0 'and now turn error reporting back on so any other errors fire as needed
End With

推荐阅读