Namaľujme obraz Monalisa a nechajme Picassa pomocou VBA. Pripravte sa, pripravte sa…
Počkaj! Počkaj! Nie tak zhurta. Práve použijeme VBA na podmienené formátovanie a je to jednoduchšie ako maľba? tvarovaný vták.
Obecná syntax podmieneného formátovania VBA
Ak je to podmienka ako Range (rozsah) .Interior.ColorIndex = 1-56
Vykonajte kontrolu stavu a potom naformátujte svoj rozsah pomocou vlastnosti .iteriour.colorindex objektu Range. Index farieb má 56 farieb. Choďte si s nimi zahrať Holi a preskúmajte, ktoré číslo drží akú farbu.
Teraz to pochopíme na príklade
Príklad: Kód VBA na podmienené formátovanie buniek
Toto je teda scenár, máme zoznam náhodných ľudí s ich vekom a vekovou skupinou.
Aké jednoduché je to rozpoznať vekovú skupinu osôb podľa obyčajného pohľadu na ich mená.
Teraz to chcem, chcem formát VBA Meno ČERVENÉ, ak je dospelý, ŽLTÝ, ak je teenager a ZELENÝ, ak je DIEŤA, a nič, ak je bunka prázdna.
Sub FormatUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) For each cell In rng If cell. Hodnota2 = "Dospelý" Potom rozsah (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Potom rozsah (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Potom rozsah (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 Koniec, ak nasledujúca bunka Koniec podč
Na spustenie tohto kódu priamo z listu som nakreslil tlačidlo na rovnakom hárku a priradil som mu toto makro. Teraz, kedykoľvek kliknete na tlačidlo „Formátovať“, váš kód sa spustí a aktualizuje bunky názvov farbou v závislosti od ich vekovej skupiny. Ako? Poďme zistiť.
Vysvetlenie kódu:
Dim rng As RangeDim lastRow As LongThese two lines are variable claims. rng pre rozsah, ktorý obsahuje vekovú skupinu a lastRow, aby sa získalo číslo posledného prázdneho riadka.
lastRow = Cells (Rows.Count, 3). End (xlUp) .RowThis line returns last last number in lastRow variable.
Set rng = Range ("C2: C" & lastRow) Tento riadok nastavuje rozsah od C2 do posledného riadka. Vďaka tomu je váš kód dynamický. Ak do svojich údajov pridáte nové riadky, zistí a uloží do nového rozsahu v premennej rng.
Pre každú bunku V rng If cell.Value2 = "Adult" Then Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2). Interior.ColorIndex = 0 Koniec, ak ďalšia bunka
Toto je hlavný segment.
Pre každú bunku V rng
Prvý riadok vedie slučku ku všetkým bunkám vo vašom rozsahu. If cell.Value2 = "Dospelý" Potom
Ďalší riadok je kontrola stavu. Kontroluje, či je aktuálna hodnota bunky Dospelá alebo nie.
Ak áno, potom sa spustí ďalší riadok, inak preskočí na príkaz if. Range (cell.Address). Offset (0, -2). Interior.ColorIndex = 3
Teraz, ak podmienka IF vráti TRUE, potom tento riadok nastaví farbu bunky na ColorIndex 3, ktorá je pre ČERVENÚ.
Podobne sa spúšťajú a vykonávajú opatrenia podľa uvedených príkazov IF.
Takže áno, podmienečne môžete formátovať rozsahy pomocou VBA. Interiérová metóda objektu Range ovláda mnoho ďalších vlastností formátovania. Mali by ste sa s nimi pohrať, neuškodí, ale určite sa naučíte. A ak sa stretávate s akýmikoľvek ťažkosťami, s čím som tu. Položte svoje otázky v sekcii komentárov.
Stiahnuť súbor
Podmienené formátovanie pomocou VBA v programe Microsoft ExcelPopulárne články:
50 skratiek programu Excel na zvýšenie produktivity
Ako používať funkciu VLOOKUP v programe Excel
Ako používať funkciu COUNTIF v programe Excel
Ako používať funkciu SUMIF v programe Excel