VBA, zatímco smyčka

VBA Zatímco smyčka je důležitý a výkonný koncept, který jste mohli vidět ve většině programovacích jazyků. Pokud zvládnete tento koncept ve VBA, budete moci připravit výkonné skripty, které pracují s tabulkovými daty, zcela odlišnými a pohodlnými způsoby. V tomto článku se připravte na prozkoumání světa různých smyček spolu s několika příklady přicházejícími za vaši pomoc.

Účelem cyklu while je opakování určitého bloku příkazů za předpokladu, že je splněna podmínka. Přesněji, zatímco smyčka opakuje odpovídající příkaz, zatímco podmínka je true. Jakmile se podmínka stane FALSE (Nesplňuje se), smyčka se ukončí sama.

V aplikaci Microsoft Excel VBA jsou v zásadě dva typy smyčky while:

  • VBA, zatímco-Wend smyčka
  • VBA Do-while Loop

VBA while-Wend Loop existuje proto, aby byl kód kompatibilní se starší verzí kódů. VBA Do-while je aktualizovaná verze while while, která je flexibilnější a strukturovanější ve srovnání s předchozí verzí a je doporučeno ji používat komunita Microsoft.

Pro případ, že vás zajímá, co to znamená Wend, je to krátká forma Zatímco konec a funguje stejně.

Příklady smyčky VBA

Pojďme se ponořit do podrobného průvodce různými typy VBA while Loops.

Tuto šablonu VBA while Loop Excel si můžete stáhnout zde - VBA while Loop Excel Template

Příklad č. 1

VBA, zatímco-Wend smyčka

Syntax:

Vezměme si příklad, abychom to viděli lépe.

  • Definujte dílčí postup pro vytvoření makra v rámci nového modulu.

Kód:

 Sub whileEx1 () End Sub 

  • Nastavte dvě proměnné Number to One a Sum to Zero.

Kód:

 Sub whileEx1 () Number = 1 Sum = 0 End Sub 

  • Nastavte podmínku while pro proměnnou Number.

Kód:

 Sub whileEx1 () Number = 1 Sum = 0 Zatímco Number <= 10 End Sub 

  • Přidejte příkazy, které mají být za tímto účelem provedeny.

Kód:

 Sub whileEx1 () Number = 1 Sum = 0 Zatímco Number <= 10 Sum = Sum + Number Number = Number + 1 End Sub 

  • Přidejte součet Debug.Print Sum tak, aby se součet prvních 10 přirozených čísel mohl tisknout jeden po druhém v Okamžitém okně.

Kód:

 Sub ZatímcoEx1 () Number = 1 Sum = 0 Zatímco Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum End Sub Sub 

  • Nakonec zakončete příkaz while while příkazem Wend.

Kód:

 Sub ZatímcoEx1 () Number = 1 Sum = 0 Zatímco Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum Wend End Sub 

  • Stisknutím klávesy F5 nebo Spustit spustíte tento kód a uvidíte výstup.

V tomto kódu je proměnná suma nastavena na nulu. Takže pokaždé, když se číslo zvýší o 1, dokud nedosáhne 10 (použitím while while loop), proměnná sum přičte předchozí součet s aktuálním číslem a zobrazí jej pod řádkem Okamžité okno po řádku nebo po jednotlivých krocích.

Příklad č. 2

VBA Do-while Loop

Do-while Loop Pokud je před začátkem smyčky zkontrolována podmínka

Existují dva způsoby, jak lze provést smyčku while while.

  • Před spuštěním smyčky můžete přidat podmínku (je to stejné jako smyčka while-Wend). Tady by nedošlo k iteraci smyčky, pokud by podmínka selhala poprvé.
  • Ke kontrole můžete přidat podmínku na konci smyčky. V takovém případě bude alespoň jedna iterace smyčky, než dojde k selhání podmínky.

Syntax:

Vezměme si jeden příklad, abychom věci vyjasnili.

  • Vložte nový modul a definujte nový dílčí postup pro definování makra.

Kód:

 Sub whileEx2 () End Sub 

  • Definujte novou proměnnou I jako celé číslo. A inicializujte jeho hodnotu na 1.

Kód:

 Sub whileEx2 () Dim i Dim Integer i = 1 End Sub 

  • Pomocí Do-while přidejte podmínku na začátek smyčky.

Kód:

 Sub whileEx2 () Dim i Dim Integer i = 1 Do while i <= 10 End Sub 

  • Přidejte příkazy, které mají být provedeny, dokud je podmínka pravdivá. Přidejte do makra spodní řádek kódu.

Kód:

 Sub whileEx2 () Dim i Dim Integer i = 1 Do while i <= 10 buněk (i, 1). Hodnota = i * i End Sub 

Tento příkaz umožňuje i-tému řádku prvního sloupce uložit druhou mocninu čísel.

  • Přidejte ještě jeden příkaz, který umožňuje zvýšení v i o 1 při každé iteraci smyčky.

Kód:

 Sub whileEx2 () Dim i Dim Integer i = 1 Dělej, když i <= 10 buněk (i, 1). Hodnota = i * ii = i + 1 End Loop End Sub 

  • Dokončete tuto smyčku přidáním příkazu Loop na konec vašeho kódu.

Podívejme se na řešení tohoto kódu:

Pro hodnoty i od 1 (původně i = 1) do 10 vypočítá i * i (tj. Druhou mocninu pro každou celočíselnou hodnotu i) a zadá ji do řádků 1 až 10 sloupce 1 (tj. Sloupec A). . Výstupem není nic jiného než druhá mocnina hodnot celých čísel 1 až 10.

  • Spusťte tento kód stisknutím klávesy F5 nebo Run a podívejte se na výstup.

Můžete vidět druhou mocninu přirozených čísel 1 až 10, která jsou uložena v každé buňce odděleně od sloupce A.

Příklad č. 3

Do-while Loop Když je stav zkontrolován na konci smyčky

Syntax:

Podívejme se na příklad, jak lépe vidět smyčky.

  • Vložte nový modul a definujte nový dílčí postup pro uložení makra.

Kód:

 Sub whileEx3 () End Sub 

  • Definujte nové celé číslo stejné jako v předchozím příkladu a přiřaďte mu počáteční hodnotu.

Kód:

 Sub whileEx3 () Dim i Dim Integer i = 1 End Sub 

  • Pomocí podmínky Do přidejte příkazy, které mají být provedeny, pokud je podmínka pravdivá.

Kód:

 Sub whileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2). Hodnota = i * ii = i + 1 End Sub 

Doporučuje se použít mezeru (klávesa Tab) jako odsazení uvedené ve výše uvedeném kódu, což umožňuje hladký chod kódu a také definuje dobrý formát struktury kódu.

  • Pomocí smyčky while přidejte podmínku, která má být zkontrolována pro každý příkaz k provedení.

Kód:

 Sub whileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2). Hodnota = i * ii = i + 1 Loop, zatímco i <= 10 End Sub 

  • Spusťte tento kód ručně stisknutím klávesy F5 nebo Run a podívejte se na výstup.

Uvidíte výstup, jak je znázorněno na obrázku výše.

Jak tento kód funguje v pozadí?

Systém vynásobí hodnotu i (od 1) do sebe a uloží se do druhého sloupce (Buňky (i, 2)) pro každý řádek jeden po druhém. Kód se zastaví, jakmile hodnota proměnné i dosáhne 10. Výstup může být stejný, což logicky znamená, že oba kódy fungují stejně. Ale hlavní rozdíl je ve kompilaci kódu. V posledním příkladu byla podmínka již tam a systém věděl, na jaké číslo musí jít. V tomto kódu však systém neví o stavu v době provádění příkazů a spustí iteraci jeden po druhém. Pokud je podmínka nepravdivá, zastavil se provádění kódu.

Co je třeba pamatovat na VBA, zatímco smyčka

  • Smyčka while-Wend je zastaralá a musí být kompatibilní se staršími verzemi kódů. Místo toho byste měli použít smyčku Do-while.
  • Smyčka Do-while je ve srovnání se smyčkou while-Wend flexibilnější a strukturovanější.
  • Do-while loop lze použít dvěma způsoby, kde v jednom případě můžete nejprve přidat podmínku, která má být zkontrolována, a poté přidat příkazy splňující podmínku. Jiným způsobem můžete přidat příkazy nejprve a později přidat podmínku, která má být zkontrolována.
  • Odsazení se doporučuje používat ve smyčkách, aby byl kód dynamičtější a snáze čitelný.

Doporučené články

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

  1. Jak používat funkci FIND v Excelu?
  2. Jak používat funkci VBA TRIM?
  3. Pole VBA | Kompletní výukový program
  4. Jak používat VBA Select Case?

Kategorie: