使用宏突出显示具有背景颜色的单元格

时间:2021-03-03 17:21:10

标签: excel vba fill

我需要我的宏来删除包含红色单元格的行。

我首先对包含红色单元格的列进行排序,使空白单元格位于顶部,然后手动单击顶部的红色单元格(第 100 行)并使用 Ctrl-Shift-Down 突出显示其余单元格。因此,我的部分代码如下所示:

ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort.SortFields.Add2 _
    Key:=Range("Table1[[#All],[First Name]]"), SortOn:= _
    xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=1, Criteria1:=RGB _
    (255, 0, 0), Operator:=xlFilterCellColor
Rows("100:150").Select

我如何修改最后一部分,以便我的宏检测红色单元格然后突出显示它们,这样无论我有多少个单元格它都能工作我的床单?

提前致谢。

1 个答案:

答案 0 :(得分:1)

下面的代码应该给你你想要的。按单元格颜色使用 AutoFilter 并整体删除。让我知道你是怎么做的。

Option Explicit
Sub DeleteByColor()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")

With ws.ListObjects("Table1").Range
    .AutoFilter 1, RGB(255, 0, 0), 8
    .Offset(1).Resize(.Rows.Count - 1).EntireRow.Delete
    .AutoFilter
End With

End Sub