2017-02-28 10 views
2

Ich versuche, für jede Zeile in einer Schleife bedingt zu formatieren, jede zweite Zeile überspringend. Zu Beginn wird der Bereich B8: Y8 mit einem Farbskalierungskriterium in Zelle AD8 formatiert. Die nächste Schleife sollte formatiert B10: Y10 AD10 verwenden, dann B12: Y12 AD12 usw. verwendet wird den ganzen Weg 98. Hier zu rudern ist die Formatierung Code, der in der Schleife sein wird:Excel VBA Loop Bedingte Formatierung von jeder Zeile

Range("B8:Y8").Select 
Selection.FormatConditions.AddColorScale ColorScaleType:=2 
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _ 
    xlConditionValueNumber 
Selection.FormatConditions(1).ColorScaleCriteria(1).Value = 0 
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor 
    .ThemeColor = xlThemeColorDark1 
    .TintAndShade = 0 
End With 
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _ 
    xlConditionValueNumber 
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = "=$AD$8" 
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor 
    .ThemeColor = xlThemeColorAccent2 
    .TintAndShade = 0 
End With 

Antwort

2

es zweckmäßig sein kann, Um die Regel für bedingte Formatierung für B8: Y92 zu machen, löschen Sie das CFR aus den ungeraden Zeilen.

Dim r As Long 
With ActiveSheet 
    With .Range("B8:Y92") 
     .FormatConditions.Delete 
     .FormatConditions.AddColorScale ColorScaleType:=2 
     .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
     .FormatConditions(1).ColorScaleCriteria(1).Type = _ 
      xlConditionValueNumber 
     .FormatConditions(1).ColorScaleCriteria(1).Value = 0 
     With .FormatConditions(1).ColorScaleCriteria(1).FormatColor 
      .ThemeColor = xlThemeColorDark1 
      .TintAndShade = 0 
     End With 
     .FormatConditions(1).ColorScaleCriteria(2).Type = _ 
      xlConditionValueNumber 
     .FormatConditions(1).ColorScaleCriteria(2).Value = "=$AD$8" 
     With .FormatConditions(1).ColorScaleCriteria(2).FormatColor 
      .ThemeColor = xlThemeColorAccent2 
      .TintAndShade = 0 
     End With 
    End With 
    For r = 9 To 91 Step 2 
     .Range("B" & r & ":Y" & r).FormatConditions.Delete 
    Next r 
End With 

Siehe How to avoid using Select in Excel VBA macros.

Verwandte Themen