3

過去 6 年間 (年は列) のプレミアム ボリュームを追跡するために、844 の個別の行で条件付き書式 (緑 - 黄 - 赤のカラー スケール) を使用しようとしています。各ボリューム列の間のトリッキーな部分は、アイテムの数です。各行をプレミアム ボリューム用にフォーマットし、アイテム数を変更しないでおきたいと思います。

この時点で、Ctrl キーを押しながら条件付き書式を選択して、個々のプレミアム ボリューム セルを選択しています。

これを自動化しようとしているので、844 行と将来のスプレッドシートでもこのプロセスを続ける必要はありません。

参考までにワークシートの写真を添付し​​ます。

どんな助けでも大歓迎です!!!

ありがとう、

ブラッド

ここに画像の説明を入力

4

1 に答える 1

1

マクロレコーダを実行して、条件付き書式の基本的なコードを取得しました。Selectionのすべての出現箇所を変数に置き換え、rngそのrng変数をサブルーチンのパラメーターとして設定して、Subをループで呼び出すことができるようにしました。

Sub SetRangeCF(rng As Excel.Range)

rng.FormatConditions.AddColorScale ColorScaleType:=3
rng.FormatConditions(rng.FormatConditions.Count).SetFirstPriority
rng.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With rng.FormatConditions(1).ColorScaleCriteria(1).FormatColor
    .Color = 8109667
    .TintAndShade = 0
End With
rng.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
rng.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With rng.FormatConditions(1).ColorScaleCriteria(2).FormatColor
    .Color = 8711167
    .TintAndShade = 0
End With
rng.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With rng.FormatConditions(1).ColorScaleCriteria(3).FormatColor
    .Color = 7039480
    .TintAndShade = 0
End With
End Sub

次に、上記のサブをループで呼び出します。この場合は、列Aに値がある行に対して1回呼び出します。これは、条件付き書式が行2で始まり、列Aに中断のないデータがあることを前提としています。 dこのループコードを調整する必要があります。

Sub SetEachRow()
Dim ws As Excel.Worksheet
Dim LastRow As Long
Dim cell As Excel.Range

Set ws = ActiveSheet    'change as necessary
With ws
    LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
    For Each cell In .Range("A1:A" & LastRow)http://stackoverflow.com/questions/10245638/excel-changes-conditional-formatting-formula?rq=1
        cell.EntireRow.FormatConditions.Delete
        SetRangeCF cell.EntireRow
    Next cell
End With
End Sub

これが機能する行の制限はわかりませんが、1,000は問題なく機能しました。

于 2013-01-17T14:59:53.070 に答える