/ / Verwenden von Excel VBA zum Anwenden bedingter Formatierung auf eine andere Arbeitsmappe basierend auf verschiedenen Regeln - Excel, VBA, Formatierung, Konditional

Verwenden von Excel VBA zum Anwenden bedingter Formatierung auf eine andere Arbeitsmappe basierend auf verschiedenen Regeln - Excel, VBA, Formatierung, bedingte

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