0

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

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

如果我尝试将此公式添加到 FormatConditions.Add 方法的 Formula1 子句中,我必须 输入,="(D1 = ""AI"")"否则解释器会抱怨。但这是用双引号作为条件字面复制的,格式不做任何事情。

我应该在 Formula1 中加入什么?

安东尼奥

4

3 回答 3

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 然后设置格式。我知道通常你不需要选择,但在这种情况下,这是我让它工作的唯一方法。

于 2013-05-08T17:22:15.837 回答
1

使用这个公式:

=$F$1="人工智能"

这将导致以下结果。

在此处输入图像描述

在 VBA 中,您可以这样做:

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

Chr (34) 是"(双引号)

你也可以使用:

If Range("F1") = "AI" Then Range("G1").Interior.Color = 65535

于 2013-05-08T17:05:09.413 回答
0

如果您在 VBA 中执行此操作,那么您为什么要使用条件格式呢?直接看G中的值,直接在VBA代码中设置F的格式即可。

于 2013-05-08T17:03:47.877 回答