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 ExceluOblí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