私はいくつかのデータ列を比較するいくつかのVBAコードを適用しようとしています。条件付きでVBAを使用してピボットテーブルをフォーマットする
、列Cの値は、列Bと比較されて、FのD、GにE、IへH.高いスコアは悪いので、条件付き書式設定はすべての2016列にあります。値が2015より大きい場合は、赤の下向きの矢印が、反対の場合は緑の矢印が表示されます。
Sub ColorYear()
Dim long1 As Long
Dim t As Long
Dim c As Long
Application.ScreenUpdating = False
' Last used row
long1 = Cells(Rows.Count, 1).End(xlUp).Row
' Delete existing rules
Range("A7:U" & long1).FormatConditions.Delete
' Loop through the rows
For t = 3 To long1
For c = 5 To 21 Step 2 ' columns C,E,G,I
With Cells(t, c).FormatConditions.AddIconSetCondition
.IconSet = ActiveWorkbook.IconSets(xl3Triangles)
.ReverseOrder = True
With .IconCriteria(2)
.Type = xlConditionValueFormula
.Value = "=" & Cells(t, c - 1).Address
.Operator = 7
End With
With .IconCriteria(3)
.Type = xlConditionValueFormula
.Value = "=" & Cells(t, c - 1).Address
.Operator = 5
End With
End With
Next c
Next t
Application.ScreenUpdating = True
End Sub
これは長い間何のフィルタリング適用がないように動作します。ここでは
は、私が使用してきたコードです。たとえば、フィルタが適用されていない場合、セルC3はB3と比較されます。しかし、いくつかのフィルタを適用すると、C2はB3(元のセル)と比較されるため、比較が正しくなくなり、誤った条件付き書式が返されます。
参照イメージ(これが適用されるフィルタと、誤ったフォーマットである)以下:
誰でも助けることはできますか?
FWIW [ux.se]の観点からは、*高い*の数字が*下向きの*赤の矢印を、*低い*の数字が*上向きの*緑の矢印を持つべき理由はすぐには分かりません。 –