Jak provést podmíněné formátování pomocí VBA v Microsoft Excelu

Anonim

Pojďme namalovat obraz Monalisa a Picassa nechat za sebou pomocí VBA. Připravte se, připravte se…

Počkejte! Počkejte! Ne tak zhurta. Budeme používat VBA k podmíněnému formátování a je to jednodušší než malování? tvarovaný pták.

Obecná syntaxe podmíněného formátování VBA

Pokud je podmínka větší než Rozsah (rozsah). Interiér.ColorIndex = 1-56

Zkontrolujte podmínku a poté naformátujte svůj rozsah pomocí vlastnosti .iteriour.colorindex objektu Range. Index barev má 56 barev. Pojďte si s nimi zahrát Holi a prozkoumejte, jaké číslo drží jakou barvu.
Nyní to pojďme pochopit na příkladu

Příklad: Kód VBA k podmíněnému formátování buněk

Toto je tedy scénář, máme seznam náhodných lidí s jejich věkem a věkovou skupinou.
Jak snadné je to rozeznat věkové skupině člověka pouhým pohledem na jeho jména.
Abych to udělal, chci formát VBA Jméno ČERVENÉ, pokud je dospělý, ŽLUTÝ, pokud je teenager a ZELENÝ, pokud je DĚTEM, a nic, pokud je buňka prázdná.

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. 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 End If Next cell End Sub

Chcete -li tento kód spustit přímo z listu, nakreslil jsem na stejný list tlačítko a přiřadil mu toto makro. Nyní, kdykoli kliknete na tlačítko „Formátovat“, váš kód se spustí a aktualizuje buňky jmen barvou v závislosti na jejich věkové skupině. Jak? Pojďme to zjistit.

Vysvětlení kódu:

Dim rng As RangeDim lastRow As LongThese two lines are variable claims. rng pro Rozsah, který obsahuje věkovou skupinu a lastRow, aby získal poslední neprázdné číslo řádku. 
lastRow = Cells (Rows.Count, 3) .End (xlUp) .RowThis line returns last last number in lastRow Variable.
Set rng = Range ("C2: C" & lastRow) Tento řádek nastavuje rozsah od C2 do posledního řádku. Díky tomu je váš kód dynamický. Když do svých dat přidáte nové řádky, detekuje a uloží do nového rozsahu v proměnné rng.
Pro každou buňku 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 End If Next cell 

Toto je hlavní segment.

Pro každou buňku v rng 

První řádek vede smyčku ke všem buňkám ve vašem rozsahu. If cell.Value2 = "Adult" Then
Další řádek je kontrola stavu. Kontroluje, zda je aktuální hodnota buňky pro dospělé nebo ne.
Pokud ano, běží další řádek, jinak přeskočí na příkaz next if.Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3
Pokud podmínka IF vrátí hodnotu TRUE, pak tento řádek nastaví barvu buňky na ColorIndex 3, která je pro ČERVENOU.

Podobně následující příkazy IF spusťte a proveďte akci, jak je uvedeno.

Takže ano, můžete podmíněně formátovat rozsahy pomocí VBA. Vnitřní metoda objektu Range ovládá mnoho dalších vlastností pro formátování. Měli byste si s nimi hrát, neuškodí, ale určitě se naučíte. A pokud se potýkáte s jakýmikoli obtížemi, pro které jsem tady. Položte své otázky v sekci komentáře.

Stáhnout soubor

Podmíněné formátování pomocí VBA v Microsoft Excelu

Oblíbené články:

50 zkratek aplikace Excel pro zvýšení produktivity

Jak používat funkci VLOOKUP v Excelu

Jak používat funkci COUNTIF v aplikaci Excel

Jak používat funkci SUMIF v aplikaci Excel