Ich habe eine große Datenbank und ich betreibe eine VBASkript, um viele verschiedene Arbeitsmappen zu erstellen, die nur einige Beispieldaten aus der vollständigen Datenbank enthalten. Das funktioniert gut, ich benutze eine Matrix, um alle relevanten Einträge zu erhalten und dann die ganze Matrix in einen definierten Bereich einer neuen Arbeitsmappe einzufügen (und nicht Zelle für Zelle von einem Arbeitsblatt in das andere zu kopieren). Mein Problem ist jetzt, dass ich zwei Regeln für die bedingte Formatierung hinzufügen muss.
Ich suche nach etwas wie:
Application.Worksheets("Database").Cells(k, ColumnOfInterest).Select
With Selection
.FormatConditions.Delete
.FormulaR1C1 = "=RC[-3] =""A"""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 6
.Formula = ""
End With
With Selection
.FormatConditions.Delete
.FormulaR1C1 = "=RC[0] ="""""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 5
.Formula = ""
End With
Mit anderen Worten, wenn der Benutzer "A" in gewählt hatdie dritte Zelle auf der linken Seite, dann sollte die Farbe der relevanten Zelle der Farbindex 6 sein, wenn die Zelle von Interesse leer ist, dann ist der Farbcode 5. Leider funktioniert dieser Code nicht und erzeugt nur eine einzige Regel für die Bedingung Formatierung.
Antworten:
2 für die Antwort № 1.FormatConditions.Delete löscht die vorherige Formatierungsbedingung. Wenn Sie .FormatConditions.Delete im zweiten Teil entfernen und .FormatConditions (1) in .FormatConditions (2) ändern, sollte es funktionieren:
Application.Worksheets("Database").Cells(k, ColumnOfInterest).Select
With Selection
.FormatConditions.Delete
.FormulaR1C1 = "=RC[-3] =""A"""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 6
.Formula = ""
.FormulaR1C1 = "=RC[0] ="""""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(2).Interior.ColorIndex = 5
.Formula = ""
End With