0

以下のコードを使用して、Excel セルに条件付き書式を挿入しました。

range("d" & rowno).Select
Selection.Offset(1, 0).EntireRow.Insert
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="= RC > 7"
Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 65535 'Yellow
    .TintAndShade = 0
End With

上記は、「7」である定義された値よりも大きい値を比較することで正常に機能します...しかし、値が格納されている変数「lhigh」を渡し、同じ im を数式で渡すと、機能しません。例えば; lhigh=7

range("d" & rowno).Select
Selection.Offset(1, 0).EntireRow.Insert
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="= RC > lhigh"
Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 65535 'Yellow
    .TintAndShade = 0
End With

直接の整数値の代わりに変数を渡す場合、チェックよりも大きい計算を行う方法を教えてください

4

2 に答える 2

2

あなたはこれを必要とします:

Formula1:="= RC > " & lhigh

&つまり、演算子を使用して文字列の連結を行う必要があります。

"= RC > " & lhighその後、として評価され"= RC > 7"ます。

于 2012-09-07T10:08:07.920 に答える
2

セルに「Arc」という名前を付け、別のセルに「lhigh」という名前を付けると、次のサブが Excel 2007 で機能します

Sub test()

Dim foo As Range

Set foo = ActiveWorkbook.Sheets("Sheet1").Range("C3")

With foo.FormatConditions _
        .Add(xlExpression, Formula1:="=Arc>lhigh")

    With .Font
        .Bold = True
        .ColorIndex = 4
    End With
End With

End Sub

これにより、セル C3 に条件付き書式が設定され、Arc の値が lhigh の場合に開始されます。

おそらく、コードをこのような基本的なものに単純化してから、さらに複雑にする必要があります。あなたの問題はコードの別の部分にあると思います。

于 2012-09-07T10:30:07.803 に答える