Ich möchte, dass dieser Makro den Bereich C6: N6 auswählt, eine Formatbedingung anwendet, Schritt 7 usw. bis zum Ende meiner Liste. Wenn ich es ausführe, bringt es mir einen Fehler bezüglich der Objekte.Anwenden der bedingten Formatierung auf Variablenbereich
Ich glaube, mein Problem auf den folgenden Teil ist:
For i = 6 To lastRow Step 7
Range(C & i, N & i).Select
So kann ich die Bereiche variabel machen möchten. Unten ist mein Code:
Sub test1()
' Coluna C
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' Pega ultima celula com valores na coluna C
For i = 6 To lastRow Step 7
Range(C & i, N & i).Select 'what am i missing?
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
Formula1:="=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Next i
End Sub
Ihr Code berücksichtigt sowohl 'C' als auch' N' als Variablen, wenn sie als Literale betrachtet werden sollen. Dazu müssen Sie sie in doppelte Anführungszeichen setzen ('' '). Versuchen Sie, sie zu' Range ("C" & i, "N" & i) zu ersetzen. Wählen Sie ". Und warum nicht mit dem gesamten Bereich auf einmal arbeiten Stattdessen könntest du das 'For' entfernen und einfach mit etwas wie' Range ("C6", "N" & lastRow) arbeiten. Wähle " –
Wie habe ich das nicht gesehen? Hehe. Funktioniert super, danke! – Serveira
@ VictorMoraes - eigentlich empfehle ich Serveira [vermeiden '.Select'] (https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros) vollständig. Es wird sparen (Aber ich stimme deinem allgemeinen Punkt zu, mit dem Bereich auf einmal zu arbeiten) – BruceWayne