根据条件格式确定单元格颜色的更改

所以我的目标是改变其中包含单词“Totals:”的string的颜色。 然后使用逻辑来突出显示单元格B1和C1。 我目前的代码可以改变颜色,但是当我使用逻辑它认为细胞没有填充。

Sub Macro6() ' ' Macro6 Macro ' 'ActiveWindow.SmallScroll Down:=-12 Range("A1:A381").Select Selection.FormatConditions.Add Type:=xlTextString, String:="Totals:", TextOperator:=xlContains ' Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority ' With Selection.FormatConditions(1).Font ' .Color = -16383844 ' .TintAndShade = 0 ' End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13551615 '16777215 ' .TintAndShade = 0 End With 'Selection.FormatConditions(1).StopIfTrue = False 'lastrow = Sheet4.Cells(Sheet4.Rows.Count, "A").End(xlUp).Row If Sheet1.Cells(9, 1).Interior.Color = 13551615 Then '16777215 MsgBox ("yes") Else MsgBox ("wrong") MsgBox (Sheet4.Cells(6, 1).Interior.Color) End If End Sub 

您需要使用单元格的.DisplayFormat属性来检索条件格式设置规则的格式方面。

 Option Explicit Sub Macro1() With Worksheets("Sheet1") With .Range("A1:A381") .FormatConditions.Delete With .FormatConditions.Add(Type:=xlTextString, String:="Totals:", TextOperator:=xlContains) .Interior.Color = 13551615 '16777215 .SetFirstPriority .StopIfTrue = False End With End With End With With Worksheets("Sheet1") MsgBox CBool(.Range("A9").DisplayFormat.Interior.Color = 13551615) End With End Sub 

值得注意的是.DisplayFormat不能在用户定义的函数(aka UDF)中使用。

谢谢您的帮助! 你为我节省了很多时间。 这就是我最终使用包装人才cares.i结束了注意到最后一个字是总,所以我可以使用正确的function

 Sub Macro6() lastrow = Sheet4.Cells(Sheet4.Rows.Count, "A").End(xlUp).Row Dim A As Integer For N = 1 To lastrow A = 1 If Right(Sheet4.Cells(N, 1), 7) = "Totals:" Then ' MsgBox ("Found at" & Sheet4.Cells(N, 1)) 'MsgBox (N) Sheet4.Cells(N, 1).Interior.Color = 13551615 Else 'nothing ' MsgBox ("Found at" & Sheet4.Cells(N, 1)) ' MsgBox (N) End If 'A = A + 1 Next End Sub