设置格式条件不适用于某些范围?



我有以下代码:

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 列到 W(最后一列)的任何部分,它可以工作,但如果我不包含 E 中的任何内容并且遵循它就会失败。

这里完全糊涂了。 有什么想法吗?

A:D 中是否有合并的单元格范围?

我相信@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

最新更新