我有一列文本,其中某些字符(不是单元格)是红色字体。有没有办法通过条件格式突出显示包含红色字符的单元格?VBA 解决方案也可以。
答案1
我不知道有任何内置函数可以检查单元格内每个字符的单独颜色,但是您可以在 VBA 中编写一个。
此函数将遍历每个字符,如果其中一个字符是红色,则返回 true。请注意:此代码仅适用于可用的标准红色,不适用于所有色调。
'Only works on the standard Red Colour
Function ContainsRed(CellCheck As Range) As Boolean
For i = 1 To Len(CellCheck.Value) Step 1
If CellCheck.Characters(i, 1).Font.Color = vbRed Then
ContainsRed = True
Exit Function
End If
Next i
ContainsRed = False
End Function
创建公式后,您可以创建新的格式规则。单击主页选项卡、条件格式、新规则。
与 A 柱配合使用
单击最后一个选项“使用公式确定要格式化的单元格”,并使用如下公式:=ContainsRed(A2)
单击确定并更改适用于适用于到您想要的列,在本例中它将是$A:$A。
帮助条件格式可以在这里找到。
答案2
Set ws = Sheets("Cost Analysis compare")
For r = 1 To 104
For c = 1 To 36
If (ws.Cells(r, c).Font.Color = 255) Then
ws.Cells(r, c).Interior.ColorIndex = 44
End If
Next c
Next r