vba中条件格式化公式中的字符串

时间:2013-05-08 16:42:33

标签: excel vba

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

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

如果我尝试将此公式添加到FormatConditions.Add方法的Formula1子句中,我必须添加   ="(D1 = ""AI"")"或翻译抱怨。但这是复制的双重双引号作为条件复制,格式化没有任何作用。

我应该在Formula1中加入什么?

安东尼奥

3 个答案:

答案 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”

这将产生以下结果。

enter image description here

在VBA中你可以这样做:

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

Chr(34)是"(双引号)

你也可以使用:

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

答案 2 :(得分:0)

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