如果列D在Excel 2007中使用VBA在同一行中具有“AI”,我想格式化列G.
如果我在条件格式编辑器中手动执行,则公式=(D1 = "AI")
可以正常工作。
如果我尝试将此公式添加到FormatConditions.Add方法的Formula1子句中,我必须添加
="(D1 = ""AI"")"
或翻译抱怨。但这是复制的双重双引号作为条件复制,格式化没有任何作用。
我应该在Formula1中加入什么?
安东尼奥
答案 0 :(得分:3)
这对我有用:
Sub Macro2()
Sheet1.Range("G1").Select
With Sheet1.Range("G:G")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=F1=""AI"""
.FormatConditions(1).Interior.ColorIndex = 3
End With
End Sub
此外,使用VBA设置条件格式总是有点不稳定(至少对我来说)。我能让它工作的唯一方法是选择G1,然后设置格式。我知道你通常不需要选择,但在这种情况下,这是我能让它工作的唯一方法。
答案 1 :(得分:1)
使用此公式:
= $ F $ 1 = “AI”
这将产生以下结果。
在VBA中你可以这样做:
="=$F$1=" + Chr (34) + "AI" + Chr (34) + ")"
Chr(34)是"
(双引号)
你也可以使用:
如果范围(“F1”)=“AI”则范围(“G1”)。Interior.Color = 65535
答案 2 :(得分:0)
如果您在VBA中这样做,那么为什么要使用条件格式呢?只需查看G中的值并直接在VBA代码中设置F的格式。