我有一个大型的Excel文档,其中包含200列和数百行。我设置了一堆条件格式设置规则,如果文本不正确,它们将变成红色。 (我在另一张纸上执行VLOOKUP公式,因此每一行必须具有特定的文本,否则VLOOKUP会出错。)问题是,行和列太多,很难找到红色的单元格。我正在寻找一种方法来突出显示整个黄色的行,或者仅突出显示该行的第一个或第二个单元格为黄色(如果该行中有一个条件格式的红色单元格)。
我已经在Google上搜索了好几个小时,找到了一种方法来执行此操作,但所有内容都指向“不可能”,这让我很难相信。我能够编写一个VBA脚本,如果我用红色填充一个单元格,该脚本将起作用,但是当条件格式规则中该单元格为红色时,它将不起作用。 (注意,我只是在学习VBA)
Sub FindingColor()
Dim r1 As Range, r2 As Range, r As Range
Dim nFirstRow As Long, nLastRow As Long, ic As Long
Set r1 = ActiveSheet.UsedRange
nLastRow = r1.Rows.Count + r1.Row - 1
nFirstRow = r1.Row
For ic = nFirstRow To nLastRow
Set r2 = Intersect(r1, Rows(ic))
For Each r In r2
If r.Interior.ColorIndex = 3 Then
r2(2).Interior.ColorIndex = 27
Exit For
End If
Next r
Next ic
End Sub
答案 0 :(得分:1)
您需要检查DisplayFormat属性以测试条件格式所做的更改。
Sub FindingColor()
Dim r1 As Range, r2 As Range, r As Range
Dim nFirstRow As Long, nLastRow As Long, ic As Long
Set r1 = ActiveSheet.UsedRange
nLastRow = r1.Rows.Count + r1.Row - 1
nFirstRow = r1.Row
For ic = nFirstRow To nLastRow
Set r2 = Intersect(r1, Rows(ic))
For Each r In r2
If r.displayformat.Interior.ColorIndex = 3 Then
r2(2).Interior.ColorIndex = 27
Exit For
End If
Next r
Next ic
End Sub
您还可以根据实际打开CFR的条件进行检查。