vba中的条件格式公式中的string

如果列D在Excel 2007中使用VBA在同一行中具有“AI”,我想格式化G列。

如果我在条件格式编辑器中手动执行,则公式=(D1 = "AI")可正常工作。

如果我尝试将此公式添加到FormatConditions.Add方法的Formula1子句中,我必须将="(D1 = ""AI"")"或解释器抱怨。 但是这是复制字面上的双重双引号作为条件和格式不起作用。

我应该在Formula1中input什么?

安东尼奥

这对我工作:

 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来设置条件格式一直有点(至less对我来说)。 我能得到它的唯一方法是selectG1,然后设置格式。 我通常知道你不需要select,但在这种情况下,这是唯一能让它工作的方法。

使用这个公式:

= $ F $ 1 = “AI”

这将导致下面。

在这里输入图像说明

在VBA中你可以这样做:

 ="=$F$1=" + Chr (34) + "AI" + Chr (34) + ")" 

Chr(34)是" (双引号)

你也可以使用:

如果范围(“F1”)=“AI”,则范围(“G1”)。Interior.Color = 65535

如果你在VBA中这样做,那你为什么要使用条件格式呢? 只需查看G中的值,并直接在VBA代码中设置F的格式。