Chcete automatizovat opakující se úlohy v Excel VBA? Naučte se používat smyčku Do-While k opakovanému provádění sady akcí, dokud není splněna podmínka.
Smyčky jsou nedílnou součástí každého kódovacího jazyka a spoustu opakujících se úkolů můžete automatizovat pomocí různých smyček v závislosti na jazyku, který máte k dispozici. Excel VBA se neliší od ostatních, protože nabízí řadu možností opakování, z nichž každá slouží jinému účelu.
Tyto smyčky můžete použít definováním počátečních a koncových bodů, podmínek (podmínek) a parametrů. Jednou z takových prominentních smyček ve VBA je smyčka do-while, kterou můžete použít k práci s automatizací dat. Zde je návod, jak používat smyčku do-while aplikace Excel VBA, vždy nezbytnou metodologii smyčkování, která může do značné míry zjednodušit vaše manuální úkoly.
Co je to smyčka Do-While v Excelu VBA?
Smyčka do-while je docela přímočará; tuto smyčku můžete použít k provádění nabídek, pokud chcete generovat požadovaný výstup na základě konkrétní podmínky. Cyklus se provádí, dokud definovaná podmínka (podmínky) není True. Jakmile program narazí na hodnotu False, smyčka se ukončí a vytiskne výsledky do určených buněk.
Smyčku do-while můžete použít v různých fázích as různými kritérii; můžete dokonce použít více smyček uvnitř hlavní vnější smyčky, abyste zvýšili její využití. Jako začátečník byste měli odkazovat na propracované Kurzy programování VBA rozšířit své znalosti a dovednosti v této oblasti.
Syntaxe Do-While Loop v Excelu VBA
Cyklus do-while má předem definovanou strukturu, kterou musíte dodržovat, abyste zajistili, že bude fungovat hladce bez chyb. Zde je syntaxe pro referenci:
Dělatzatímco [condition_reference]
[Prohlášení kritérií]
Smyčka
Cyklus začíná klíčovým slovem do-while, za nímž následují počáteční a koncové odkazy. První část syntaxe řídí celou smyčku. Dále musíte definovat příkazy, které se provedou při každém spuštění smyčky.
Nakonec, jakmile podmínka smyčky získá hodnotu False, klíčové slovo smyčky se spustí a smyčku opustí. Toto je celková struktura; můžete jej upřesnit a provádět různé akce. Zde je několik příkladů, jak se seznámit s fungováním cyklu do-while.
Psaní vašeho prvního kódu smyčky do-během
Předpokládejme, že chcete ve sloupci A zobrazit násobky dvou. Podmínkou je tisknout čísla, dokud počítadlo nedosáhne 20.
Chcete-li tak učinit, přejděte na kartu Vývojář v aplikaci Excel a otevřete editor kódování; případně stiskněte Alt + F11 pro přímé otevření editoru kódování. V okně editoru kódu klikněte na Vložit kartu a přidejte nový modul.
V tomto okně modulu musíte napsat celý kód. Do modulu přidejte následující kód:
Sub dowhileloop()
Dim a Tak jako Celé číslo
a = 1
DělatZatímco a <= 10
Buňky (a, 1) = 2 * a
a = a + 1
Smyčka
Konec Sub
Vysvětlení kodexu
Zde je rozpis kódu, který vám pomůže zvládnout základy:
- Použít podprogram: Chcete-li začít psát kód v Excel VBA, vytvořte vnější shell s funkcí podprogramu (Sub). Dejte mu smysluplný název, který rezonuje s účelem kódu. V tomto příkladu můžete použít název dowhileloop následovaný ().
- Definujte datové typy: K deklaraci proměnných datových typů je nutné použít funkci dimenze (dim). Deklarováním datového typu můžete zefektivnit svůj kód a zlepšit rychlost provádění. V tomto případě proměnná A ukládá celočíselné hodnoty, takže k jeho definování použijte datový typ celé číslo. Do této proměnné můžete uložit číslo počátečního řádku, abyste deklarovali počáteční datový bod vaší smyčky do-while.
- Definujte podmínku (y): Nyní je čas předat podmínku pro řízení smyčky do-while. Můžete použít dělat, zatímco klíčová slova následovaná podmínkou. Protože chcete cyklus spustit desetkrát, použijete podmínku a < = 10.
- Předejte spustitelné příkazy: Je důležité, abyste znali rozdíl mezi Funkce buňky a funkce Rozsah ve VBA. Funkce buněk používá odkazy na řádky a sloupce ve VBA. Například během první iterace, kdy je hodnota a =1, je vzorec buňky (1,1). V paměti VBA se to převede na buňku A1. Pokaždé, když se smyčka spustí, hodnota definované proměnné se zvýší a odkaz se přesune na další dostupnou buňku.
- Zvyšte svou proměnnou: Můžete projít a = a + 1 příkaz ke zvýšení hodnot buněk. Tím se smyčka přesune do další části podmínky; smyčka pokračuje, dokud podmínka nezíská hodnotu False.
- Ukončete podmínku smyčky: Jakmile je podmínka False, smyčka se ukončí s klíčovým slovem Loop a nakonec opustí podprogram s klíčovým slovem End Sub.
- Provedení kódu: Protože je kód připraven, jednoduše stiskněte klávesa F5 nebo zeleným tlačítkem přehrávání na horní liště nabídky pro spuštění kódu.
Konečný výsledek zobrazuje seznam čísel od 2 do 20 ve sloupci A.
Použití předem vyplněného sloupce jako podmínky smyčky
Nyní, když jste pochopili syntaxi a nuance vytváření základní struktury, proč nenapsat další kód pro tisk podobných čísel na základě již existujících kritérií? Můžete například vytvořit podmínku smyčky, která vybere své vodítko ze sloupce A a vytiskne výstup ve sloupci B.
Na základě celkového počtu vyplněných buněk ve sloupci A můžete vytisknout násobky dvou ve sloupci B. Smyčka spustí celkový počet předem vyplněných buněk ve sloupci A. Protože počáteční hodnota řádku je jedna (a =1), je koncová hodnota dynamická a je automaticky vypočítána pomocí cyklu do-while.
Pomocí hodnoty řádku kód prochází každou buňku ve sloupci A a vynásobí číslo 2. Výstup je uveden ve sloupci B.
Pokud je ve sloupci A více než deset hodnot, smyčka poběží, dokud nenarazí na prázdnou hodnotu v prvním sloupci. Podobně můžete napsat ještě složitější podmínky v rámci cyklu do-while a použít jej ke kontrole podmínek a zobrazení výstupu podle potřeby.
Použití příkazu IF v rámci smyčky Do-While
Podobně jako vnořené smyčky můžete použít příkaz IF v rámci smyčky Do-While k přidání další vrstvy podmínky. V takovém případě smyčka do-while spustí celou smyčku, dokud není podmínka False, a vnitřní příkaz IF se provede při každém spuštění smyčky.
V níže uvedeném příkladu smyčka do-while prochází každou buňkou ve sloupci A, dokud nenarazí na prázdnou buňku. Následně příkaz IF zkontroluje hodnotu každé buňky ve sloupci A a vytiskne výstup ve sloupci B. Jakmile vnější smyčka narazí na prázdnou buňku ve sloupci A, smyčka se zastaví a opustí podprogram.
Výstup je následující:
Dokud nebude hodnota ve sloupci A menší než pět, bude výsledná hodnota ve sloupci B pět. V A6, protože hodnota buňky je větší než pět, je výsledný výstup sedm, což je synchronizováno s podmínkou IF.
Odhalení vícestranných funkcí VBA
Excel a VBA tvoří velmi vhodnou kombinaci pro provádění pokročilé analýzy dat. I bez VBA můžete používat různé logické funkce Excelu k provádění složitých úkolů, což je příkladem vašich programátorských dovedností.
Pokud se zajímáte o analýzu dat a používáte Excel při svých běžných činnostech, můžete nesmírně těžit z používání mnohostranných logických funkcí Excelu.