Obsah
Ve velkých databázích trávíte většinu času prací s rozsahy a buňkami. Někdy musíte opakovat stejnou akci ve velkých rozsazích nebo velkém počtu buněk. To zároveň zabíjí váš čas a snižuje efektivitu. Chytrým řešením tohoto problému je vytvoření tzv. Programovací kód VBA který projde každou buňku v rozsahu a provede stejnou akci podle vašeho pokynu. Dnes v tomto článku probereme, jak provést VBA pro každou buňku v rozsahu v aplikaci Excel.
Stáhnout cvičebnici
Stáhněte si tento cvičební sešit a procvičte si tento úkol při čtení tohoto článku.
Kód VBA pro každou buňku v rozsahu v aplikaci Excel.xlsx3 vhodné způsoby použití VBA pro každou buňku v rozsahu v aplikaci Excel
Pomocí kódu VBA můžete provést stejný vzorec pro každou buňku v rozsahu nebo sloupci či řádku. V této části projdeme všechny části.
1. Použijte VBA pro každou buňku v rozsahu
Vezměme si situaci, kdy je třeba použít stejný kód VBA pro každou buňku v daném rozsahu ( B3:F12 ). Za tímto účelem vytvoříme kód VBA. Pokyny jsou uvedeny níže.
Krok 1:
- Nejprve vložíme příkazové tlačítko, abychom si zjednodušili práci. Přejděte do svého účtu. Karta Vývojář , vyberte Vložte , a klikněte na příkazové tlačítko, abyste jej získali.
- Máme své příkazové tlačítko.
- Klepnutím pravým tlačítkem myši na příkazové tlačítko otevřete možnosti. Vyberte a klepněte na položku Vlastnosti upravit některé možnosti.
- Změňte titulek příkazového tlačítka. Zde změníme název na: " Klikněte zde ".
Krok 2:
- Nyní dvakrát klikněte na příkazové tlačítko, abyste otevřeli VBA. Modul . Zde zapíšeme náš kód VBA pro tuto úlohu.
- Nejprve deklarujeme dvě proměnné. Objekty nazveme range. CL a Rng . Můžete si je pojmenovat, jak chcete.
Dim CL As Range Dim Rng As Range
- Tímto příkazem přiřadíte konkrétní rozsah,
Set Rng = Worksheets("VBA1").Range("B3:F12")
- Zde VBA1 je název našeho pracovního listu a B3:F12 je náš definovaný rozsah.
- Nyní použijeme kód pro provedení každé buňky v rozsahu. Kód je následující,
Pro každou CL v Rng CL.Value = 100 Další CL
- Hodnota = 100 odkazuje na to, že se vrátí 100 pro každou buňku v daném rozsahu.
- Náš konečný kód tedy bude,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng CL.Value = 100 Next CL End Sub
- Přejděte na hlavní pracovní list a kliknutím na příkazové tlačítko spusťte VBA pro každou buňku v rozsahu.
Krok 3:
- Stejně jako číselné hodnoty můžeme do každé buňky v rozsahu vložit i textové hodnoty. V takovém případě přejděte do okna VBA a místo hodnoty 100 vložte textovou hodnotu, kterou chcete projít. Změněný řádek je následující
CL.Value = "ExcelWIKI"
- Klikněte na příkazové tlačítko a kód VBA vrátí tuto textovou hodnotu pro každou buňku v rozsahu.
Krok 4:
- V tomto kroku půjdeme trochu hlouběji. Řekněme, že chceme zvýraznit každou prázdnou buňku v našem rozsahu.
- Za tímto účelem přidejte do stávajícího kódu novou podmínku. Nový vzorec je následující,
If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If
- Tento nový kód zvýrazní prázdnou buňku červenou barvou. Úplný kód tedy zní,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If Next CL End Sub
- Výsledek získáte kliknutím na příkazové tlačítko.
Podobné čtení:
- Jak používat objekt Range VBA v aplikaci Excel (5 vlastností)
- Použití posunu rozsahu VBA (11 způsobů)
- Jak počítat text v aplikaci Excel (7 snadných triků)
2. Vložení kódu VBA pro každou buňku ve sloupci rozsahu
Kód VBA můžeme spustit i pro každou buňku ve sloupci. Předpokládejme, že máme sloupec obsahující čísla a máme obarvit hodnoty, které jsou menší než 10. Sestavíme kód VBA pro spuštění každé buňky ve sloupci.
Krok 1:
- Vytvořte příkazové tlačítko podle pokynů, které jsme probrali.
Krok 2:
- Poklepáním na příkazové tlačítko otevřete okno VBA.
- Deklarujeme proměnnou s názvem " c " typu long. Proměnnou typu Long zde používáme proto, že proměnné Long mají větší kapacitu než proměnné Integer.
Dim c As Long
- Dále přidejte řádek kódu, který změní barvu písma všech buněk našeho sloupce na černou.
Columns(1).Font.Color = vbBlack
- Vložte smyčku pro tento kód.
For c = 1 To Rows.Count Next c
- V tomto kroku zadáme podmínku, aby se vybarvily hodnoty, které jsou nižší než hodnota buňky C4 (10). K tomu zadáme tento kód.
If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If
- Konečný kód tedy zní,
Private Sub CommandButton1_Click () Dim c As Long Columns(1).Font.Color = vbBlack For c = 1 To Rows.Count If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If Next c End Sub
- Po kliknutí na příkazové tlačítko se spustí VBA a zobrazí výsledky.
3. Napište kód VBA pro každou buňku v řádku rozsahu
Kód VBA můžeme spustit i pro každou buňku v řádku. V daném řádku potřebujeme provést stejnou akci pro každou buňku řádku.
Krok 1:
- Přidejte příkazové tlačítko a změňte jeho název na " Klikněte zde! "
- Poklepáním na tlačítko otevřete okno VBA. Zapište níže uvedený kód VBA.
Private Sub CommandButton1_Click () Dim r As Range Dim MyString As String 'Pro každou buňku v řádku a použijte žlutou barevnou výplň For Each r In Range("B3:F3").Rows r.Interior.ColorIndex = 6 Next End Sub
- Kód projde každou buňku řádku a na každou buňku použije výplň žluté barvy.
- Klikněte na tlačítko a náš výsledek je zde.
Rychlé poznámky
👉 Pokud nemáte kartu vývojáře viditelnou, můžete ji aktivovat pomocí tohoto pokynu.
Přizpůsobený panel nástrojů Rychlý přístup → Další příkazy → Přizpůsobit pás karet → Vývojář → OK
Závěr
Prošli jsme tři různé přístupy ke spuštění VBA pro každou buňku v rozsahu. Pokud máte nějaké otázky nebo dotazy, můžete je komentovat. Můžete se podívat i na naše další články týkající se úloh v Excelu!