Excel VBA do smyčky

Proveďte, dokud smyčka nebude opakovat příkazy, dokud se podmínka / kritéria nestanou pravdivou. Vykoná příkazy, dokud jsou podmínky FALSE. Jakmile se podmínka / kritéria stanou PRAVDA, ukončí smyčku. Může to vypadat opačně než smyčka Do while, kde smyčka běží tak dlouho, dokud jsou kritéria PRAVDA a ukončena, jakmile jsou kritéria FALSE.

Viz vývojový diagram níže, který vysvětluje fungování smyčky Do Until:

Syntaxe Do Do Loop v Excelu VBA

Do Until Loop má dva druhy syntaxe v Excel VBA.

Syntaxe 1:

 Do Dokud (Podmínka) (Příkazy, které mají být provedeny) Smyčka 

Syntaxe 2:

 Do (Příkazy k provedení) Smyčka do (Podmínka) 

Základní rozdíl mezi těmito dvěma syntaxemi je provedení. V první syntaxi smyčka vždy zkontroluje, zda je podmínka true nebo false. Pokud je False, bude opakovat smyčku znovu. Jakmile jsou podmínky / kritéria pravdivé, smyčka se ukončí. V tomto případě existuje možnost, že smyčka bude ukončena při první iteraci samotné (pokud je podmínka true). V takovém případě tedy nebudete mít žádný výstup. Ve druhé syntaxi však smyčka zpočátku provede příkazy a poté zkontroluje, zda je to pravda nebo nepravda. Pokud je podmínkou False, provede znovu stejnou sadu příkazů a zkontroluje podmínku. Pokud první iterace sama o sobě dává podmínku jako True, tato smyčka končí, ale před tím bude proveden příkaz. V takovém případě dostaneme alespoň jednu iteraci (jako nulový výstup).

Nakonec bude výstup obou kódů stejný. Poprava je však něco, co tyto dva liší.

Příklad Excel VBA do smyčky

Podívejme se na příklady aplikace Do Until Loop v aplikaci Excel VBA.

Zde si můžete stáhnout tuto šablonu VBA Do Until Loop Excel - VBA Do Until Loop Excel Template

Příklad č. 1 - VBA udělejte až do smyčky, když jsou podmínky zkontrolovány na začátku

Při použití smyčky Do Until v aplikaci Excel VBA postupujte podle níže uvedených kroků.

Krok 1: Vložte nový modul do editoru jazyka (VBE), abyste mohli psát kód.

Krok 2: Definujte dílčí postup, který může uložit kód makra, který budete psát.

Kód:

 Sub Do_Until_Ex1 () End Sub 

Krok 3: Definujte novou proměnnou „X“ s datovým typem jako „Long“. Tuto proměnnou lze použít jako podmínku / kritéria v cyklu Do Until loop.

Kód:

 Sub Do_Until_Ex1 () Dim X jako Long End Sub 

Krok 4: Nastavte počáteční hodnotu 1 pro proměnnou X.

Kód:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 End Sub 

Krok 5: Spusťte smyčku pomocí klíčových slov Do Until.

Kód:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Do End Sub 

Krok 6: Zadejte kritéria jako X = 11 pod Do Do. Toto je podmínka, která umožňuje, aby se smyčka praskla, když je true. To znamená, že smyčka bude spuštěna, dokud nebude hodnota X = 11. Jakmile se hodnota pro X rovná 11, smyčka bude ukončena.

Kód:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Un X = 11 End Sub 

Krok 7: Nyní použijte buňky VBA. Hodnotová funkce, aby bylo možné přidat druhou mocninu každého čísla do X pod prvním sloupcem.

Kód:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Un X = 11 Cells (X, 1). Hodnota = X * X End Sub Sub 

Krok 8: Opět musíme nastavit přírůstek v X o 1, takže při každém spuštění smyčky a zkontroluje podmínku přejde na další číslo a uloží její druhou mocninu do příslušné buňky až do čísla 11.

Kód:

 Sub Do_Until_Ex1 () Dim X as Long X = 1 Do Un X = 11 Cells (X, 1). Hodnota = X * XX = X + 1 End Sub 

Krok 9: Dokončete tento postup do smyčky zadáním klíčového slova „Loop“ na konci kódu.

Kód:

 Sub Do_Until_Ex1 () Dim X as Long X = 1 Do Un X = 11 Cells (X, 1). Hodnota = X * XX = X + 1 End Loop End Sub 

V tomto kódu jsme chtěli mít druhou mocninu pro čísla začínající od 1 do 11 (Jakmile je hodnota 11, smyčka končí). V každé buňce tabulky Excel (až do buňky číslo 11) budou hodnoty uloženy. Přírůstek 1 jednotky umožňuje, aby se číslo pokaždé zvýšilo o 1 v předchozí hodnotě X a druhá mocnina tohoto čísla se vytiskla v příslušné buňce. Například Squared value for 3 bude vytištěna pod 3. buňkou aktivního listu Excel. Tato smyčka běží, dokud X není rovno 11. Proto z buňky A1 do buňky A10 dostaneme druhou mocninu čísla začínající od 1 do 10 (při ukončení smyčky číslo 11).

Krok 10: Stiskem tlačítka Spustit nebo stisknutím klávesy F5 spustíte tento kód a uvidíte výstup.

Příklad č. 2 - Do Do loop, pokud jsou podmínky zkontrolovány na konci smyčky

Při použití smyčky Do Until v aplikaci Excel VBA postupujte podle níže uvedených kroků.

Krok 1: Definujte nový dílčí postup v modulu VBE.

Kód:

 Sub Do_Until_Ex2 () End Sub 

Krok 2: Definujte proměnnou „Y“ s typem dat jako „Long“. Tato proměnná bude užitečná při vytváření podmínek.

Kód:

 Sub Do_Until_Ex2 () Dim Y jako Long End Sub 

Krok 3: Nastavte počáteční hodnotu proměnné „Y“ na 1.

Kód:

 Sub Do_Until_Ex2 () Dim Y Tak dlouho Y = 1 End Sub 

Krok 4: Přidejte podmínku Do zadáním Do na dalším řádku poté, co nastavíte počáteční hodnotu Y na 1.

Kód:

 Sub Do_Until_Ex2 () Dim Y Tak dlouho Y = 1 Do End Sub 

Krok 5: Do části Do loop přidejte část kódu, kterou chcete spustit. Zde si vezmeme stejný příklad jako výše (pomůže nám to zjistit, jak jsou výstupy stejné, ale kompilace se liší pro dva z těchto kódů).

Kód:

 Sub Do_Until_Ex2 () Dim Y, pokud Y = 1 Do Sheets ("Příklad 2"). Buňky (Y, 1). Hodnota = Y * Y End Sub 

Krok 6: Po každé iteraci smyčky jste chtěli, aby byla hodnota zvýšena o 1 jednotku, nastavte příkaz pro tuto část v části Do.

Kód:

 Sub Do_Until_Ex2 () Dim Y, pokud Y = 1 Do Sheets ("Příklad 2"). Buňky (Y, 1). Hodnota = Y * YY = Y + 1 End Sub 

Krok 7: Přidejte závěrečný příkaz pro tuto smyčku s klíčovým slovem jako „Loop“.

Kód:

 Sub Do_Until_Ex2 () Dim Y, pokud Y = 1 Do Sheets ("Příklad 2"). Buňky (Y, 1). Hodnota = Y * YY = Y + 1 Loop End Sub Sub 

Vydrž! Je tu ještě něco. V této smyčce, tentokrát po klíčovém slově Loop, musíte přidat kritéria do / kritéria. To umožní kompilátoru zkontrolovat stav na konci smyčky.

Krok 8: Přidejte do Y = 11 jako podmínku po Loop Keyword.

Kód:

 Sub Do_Until_Ex2 () Dim Y, pokud Y = 1 Do Sheets ("Příklad 2"). Buňky (Y, 1). Hodnota = Y * YY = Y + 1 Loop Dokud Y = 11 End Sub 

Krok 9: Spusťte tento kód stisknutím klávesy F5 nebo Run a podívejte se na kouzlo pod listem s názvem „Příklad 2“.

Jak tento kód funguje?

Systém umocňuje druhou mocninu na hodnotu Y pokaždé pod smyčkou a ukládá ji do druhého sloupce listu s názvem „Příklad 2“ řádek po řádku. Po každé iteraci je aktuální hodnota Y zvýšena o 1 jednotku a aktualizovaná hodnota je na druhou a uložena. Pokud je hodnota menší než hodnota kritéria (Y = 11), kód provede druhou mocninu a uloží ji. Jakmile kompilátor hodnoty dosáhne hodnoty Y = 11, zastaví provádění kódu a ukončí jej.

Oba kódy poskytují podobný výstup, ale logicky je rozdíl v kompilacích pro oba. V prvním typu kódu se podmínka kontroluje na začátku smyčky a pokud je False, pak pouze smyčka začne vyhodnocovat další výraz. Ve druhém příkladu však kód začíná spuštěnou smyčku a provádí příkazy Do na začátku (ukládání hodnot do vyrovnávací paměti pro provádění příkazů). Na konci smyčky kompilátor přijde s kritériem a zkontroluje totéž s hodnotou vyrovnávací paměti.

Co si pamatovat

  • VBA Do Until je přesně opačný případ aplikace Excel VBA Do while. Smyčka VBA Do while běží, dokud je podmínka PRAVDA. Jakmile je podmínka FALSE, smyčka Do while se ukončí. Na druhou stranu, VBA Do Until běží, dokud je podmínka FALSE. Jakmile je podmínka PRAVDA, smyčka bude ukončena.
  • Má dva způsoby řízení: jeden, kde je stav zkontrolován na začátku smyčky a druhý, kde je stav zkontrolován na konci smyčky.

Doporučené články

Toto je průvodce VBA Do Until Loop. Zde diskutujeme o tom, jak používat Excel VBA Do Until Loop spolu s několika praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. VBA, zatímco smyčka
  2. LOOKUP Formula v Excelu
  3. Kompletní výukové programy o smyčkách VBA
  4. Vyhledávací tabulka v Excelu

Kategorie: