我有以下代码:
i = i + 1
StrSearchCriteria = "=($W1=" & Chr(34) & "ETF" & Chr(34) & ")"
With .Range("A:A").FormatConditions
.Add Type:=2, Formula1:=StrSearchCriteria
With .Item(i)
.SetFirstPriority
With .Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(225, 225, 0)
End With
.StopIfTrue = False
End With
End With
这不会设置格式条件。规则在那里,范围,标准是正确的,但格式条件是“无格式设置”。
但是......如果我改变了
With .Range("A:A").FormatConditions
到
With .Range("E:E").FormatConditions
它有效......
“B:B”,“C:C”,“D:D”都以同样的问题失败。
使用“E:E”(我也尝试了“F:F”工作),然后我可以打开工作簿并手动将范围更改为“A:A”,“B:B”,“C: C“或”D:D“并且有效。
然后我尝试了“A:E”,这也有效。看来,如果我使用E到E列的任何部分(最后一列),它会起作用,但是如果我不包含E中的任何内容并且跟随它失败。
这里完全糊涂了。有什么想法吗?
答案 0 :(得分:1)
A:D中是否有合并的单元格区域?
答案 1 :(得分:1)
我相信@mer_curius会遇到问题 - 合并的单元格。
所以,作为一种解决方法,因为我只想要A:A来着色,我需要将条件设置为A:E,我遵循该规则设置具有相同标准的规则并且不填充B :的E
有效的代码如下所示:
i = 1
StrSearchCriteria = "=($W1=" & Chr(34) & "ETF" & Chr(34) & ")"
strRange = "A:E"
With .Range(strRange).FormatConditions
.Add Type:=2, Formula1:=StrSearchCriteria
With .Item(i)
.SetFirstPriority
With .Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(225, 225, 0)
End With
.StopIfTrue = False
End With
End With
i = i + 1
StrSearchCriteria = "=($W1=" & Chr(34) & "ETF" & Chr(34) & ")"
strRange = "B:E"
With .Range(strRange).FormatConditions
.Add Type:=2, Formula1:=StrSearchCriteria
With .Item(i)
.SetFirstPriority
With .Interior
.Pattern = xlNone
End With
.StopIfTrue = False
End With
End With