/ / Použitie programu Excel VBA na použitie podmieneného formátovania v inom zošite na základe rôznych pravidiel - excel, vba, formátovanie, podmienené

Použitie programu Excel VBA na použitie podmieneného formátovania na inom zošitu založenom na rôznych pravidlách - excel, vba, formátovanie, podmienené

Mám veľkú databázu a používam vbaskriptu, aby sa vytvorili rôzne pracovné zošity, ktoré obsahujú iba niektoré vzorové údaje z celej databázy. To funguje dobre, používam maticu, aby som získal všetky relevantné záznamy a potom vložil celú maticu do vymedzeného rozsahu nového zošita (a nie kopírovať celú bunku z jedného pracovného listu do druhého). Môj problém je teraz, že musím pridať dve pravidlá pre podmienené formátovanie.

Hľadám niečo ako:

 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

Inými slovami, ak užívateľ zvolil "A"3. bunka vľavo, potom farba príslušnej bunky by mala byť farebný index 6, ak je bunka záujmu prázdna, potom kód farby je 5. Bohužiaľ tento kód nefunguje a vytvára iba jediné pravidlo pre podmienené formátovanie.

odpovede:

2 pre odpoveď č. 1

.FormatConditions.Delete odstráni predchádzajúci formát. Ak odstránite. FormátConditions.Delete v druhej časti a zmeniť. FormátConditions (1) na .FormatConditions (2) by mal fungovať:

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