0

Excel 2007 で VBA を使用して、列 D の同じ行に「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="AI"

これにより、以下が発生します。

ここに画像の説明を入力

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 に答える