VBA počas slučky

VBA while Loop je dôležitý a výkonný koncept, ktorý ste mohli vidieť vo väčšine programovacích jazykov. Ak ovládate tento koncept v rámci VBA, budete môcť pripraviť výkonné skripty, ktoré pracujú s tabuľkovými dátami, úplne odlišnými a pohodlnými spôsobmi. V tomto článku sa pripravte na objavovanie sveta rôznych slučiek spolu s niekoľkými príkladmi prichádzajúcimi na pomoc.

Účel cyklu while je opakovanie určitého bloku príkazov, ktoré podliehajú splneniu podmienky. Presnejšie povedané, zatiaľ čo slučka opakuje zodpovedajúci príkaz, zatiaľ čo podmienka je true. Akonáhle sa stav stane Falošným (nespĺňa sa), slučka sa ukončí sama.

V Microsoft Excel VBA sú v zásade dva typy slučiek while:

  • Slučka VBA while-Wend Loop
  • VBA Do-while Loop

VBA while-Wend Loop existuje, aby bol kód kompatibilný so staršou verziou kódov. VBA Do-When je aktualizovaná verzia slučky while, ktorá je flexibilnejšia a štruktúrovanejšia v porovnaní s predchádzajúcou a odporúča sa jej používanie komunitou spoločnosti Microsoft.

Len pre prípad, že vás zaujíma, čo to znamená Wend, je to krátka forma Zatiaľ čo končí a funguje rovnako.

Príklady VBA počas slučky

Poďme sa ponoriť do podrobného sprievodcu rôznymi typmi VBA Zatiaľ čo slučky.

Túto šablónu VBA while Loop Excel si môžete stiahnuť tu - šablónu VBA while Loop Excel

Príklad č. 1

Slučka VBA while-Wend Loop

syntaxe:

Urobme príklad, aby sme to videli lepšie.

  • Definujte čiastkový postup na vytvorenie makra v rámci nového modulu.

kód:

 Sub whileEx1 () End Sub 

  • Nastavte dve premenné číslo na jednu a súčet na nulu.

kód:

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

  • Nastavte podmienku while pre premennú Number.

kód:

 Sub whileEx1 () Number = 1 Sum = 0 Zatiaľ čo Number <= 10 End Sub 

  • Pridajte príkazy, ktoré sa majú vykonať za týchto podmienok.

kód:

 Sub Zatiaľ čo1 () Počet = 1 Súčet = 0 Kým Číslo <= 10 Súčet = Súčet + Číslo Číslo = Počet + 1 Koniec Sub 

  • Pridajte Debug.Print Sum tak, aby sa suma prvých 10 prirodzených čísel mohla vytlačiť jedna po druhej v Okamžitom okne.

kód:

 Sub whileEx1 () Number = 1 Súčet = 0 Kým Number <= 10 Súčet = Súčet + Number Number = Number + 1 Debug.Print 

  • Nakoniec ukončite slučku while príkazom Wend.

kód:

 Sub whileEx1 () Počet = 1 Súčet = 0 Kým Číslo <= 10 Súčet = Súčet + Číslo Číslo = Číslo + 1 Debug.Print Suma Wend End Sub 

  • Stlačením klávesy F5 alebo Run spustite tento kód a uvidíte výstup.

V tomto kóde je súčet súčet nastavený na nulu. Takže zakaždým, keď sa číslo zvýši o 1, až kým nedosiahne 10 (použitím while while loop), premenná súčtu pridá predchádzajúci súčet s aktuálnym číslom a zobrazí ho pod riadkom Okamžité okno za riadkom alebo postupne po sebe.

Príklad č. 2

VBA Do-while Loop

Slučka Do-When Loop, keď je skontrolovaná podmienka pred začiatkom slučky

Existujú dva spôsoby, ako je možné vykonať slučku while while.

  • Podmienku môžete pridať pred začatím slučky (je to rovnaké ako slučka while-Wend). Tu by nedošlo k iterácii slučky, ak by podmienka zlyhala prvýkrát.
  • Na kontrolu môžete pridať podmienku na konci cyklu. V tomto prípade bude aspoň jedna iterácia slučky skôr, ako sa podmienka dostane do zlyhania.

syntaxe:

Vezmime si jeden príklad na objasnenie vecí.

  • Vložte nový modul a definujte nový podprogram na definovanie makra.

kód:

 Sub whileEx2 () End Sub 

  • Definujte novú premennú I ako celé číslo. A iniciujte jeho hodnotu na 1.

kód:

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

  • Použite funkciu Do-while na pridanie podmienky na začiatok cyklu.

kód:

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

  • Pridajte príkazy, ktoré sa majú vykonať, pokiaľ je splnená podmienka. Do makra pridajte nasledujúci riadok kódu.

kód:

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

Tento príkaz umožňuje, aby i-tý riadok prvého stĺpca uložil druhú hodnotu čísel.

  • Pridajte ešte jeden príkaz, ktorý umožňuje prírastok v i po 1 pri každej iterácii slučky.

kód:

 Sub whileEx2 () Dim i Dim Integer i = 1 Do while i = 10 buniek (i, 1). Hodnota = i * ii = i + 1 End Loop End Sub 

  • Túto slučku dokončite pridaním príkazu Loop na koniec kódu.

Pozrime sa na riešenie tohto kódu:

Pre hodnoty i od 1 (pôvodne i = 1) do 10 vypočíta i * i (tj druhú hodnotu pre každú celočíselnú hodnotu i) a vloží ju do riadkov 1 až 10 stĺpca 1 (tj stĺpec A)., Výstup nie je nič iné ako hranaté hodnoty celých čísel 1 až 10.

  • Spustite tento kód stlačením klávesy F5 alebo Run a pozrite si výstup.

Môžete vidieť druhú mocninu prirodzených čísel 1 až 10, ktoré sú uložené v každej bunke osobitne v stĺpci A.

Príklad č. 3

Slučka Do-while Loop, keď je na konci slučky skontrolovaná podmienka

syntaxe:

Pozrime sa na príklad, ako lepšie vidieť slučkovanie.

  • Vložte nový modul a definujte nový podprogram na uloženie makra.

kód:

 Sub whileEx3 () End Sub 

  • Definujte nové celé číslo i ako v predchádzajúcom príklade a priraďte mu počiatočnú hodnotu.

kód:

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

  • Použite podmienku Do na pridanie príkazov, ktoré sa majú vykonať, pokiaľ je podmienka splnená.

kód:

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

Odporúča sa používať medzeru (kláves Tab) ako odsadenie znázornené vo vyššie uvedenom kóde, čo umožňuje hladký chod kódu a tiež definuje správny formát štruktúry kódu.

  • Použite slučku while na pridanie podmienky, ktorá sa má skontrolovať pre každý príkaz, ktorý sa má vykonať.

kód:

 Sub whileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2). Hodnota = i * ii = i + 1 Loop, zatiaľ čo i <= 10 End Sub 

  • Spustite tento kód ručným stlačením klávesy F5 alebo Run a pozrite si výstup.

Uvidíte výstup tak, ako je to znázornené na obrázku vyššie.

Ako tento kód funguje v pozadí?

Systém vynásobí hodnotu i (od 1) do seba a uloží sa do druhého stĺpca (bunky (i, 2)) pre každý riadok jeden po druhom. Kód sa zastaví, len čo hodnota premennej i dosiahne hodnotu 10. Výstup môže byť rovnaký, čo logicky znamená, že oba kódy pracujú rovnako. Hlavný rozdiel je však v zostavovaní kódu. V poslednom príklade už bola podmienka a systém vedel, na aké číslo musí ísť. V tomto kóde však systém nevie o stave v čase vykonávania príkazov a vykonáva iteráciu jeden po druhom. Pokiaľ je podmienka nepravdivá, kód sa prestal vykonávať.

Čo je potrebné pamätať na VBA, zatiaľ čo slučka

  • Slučka while-Wend je zastaraná a musí byť kompatibilná so staršími verziami kódov. Namiesto toho by ste mali použiť slučku Do-while.
  • Slučka Do-while je flexibilnejšia a kvalitnejšia v porovnaní so slučkou while-Wend.
  • Slučka do-while sa dá použiť dvoma spôsobmi, kde v jednom prípade môžete najprv pridať podmienku, ktorá sa má skontrolovať, a potom pridať príkazy vyhovujúce podmienke. Iným spôsobom môžete najskôr pridať príkazy a neskôr pridať podmienku, ktorá sa má skontrolovať.
  • Odporúča sa použitie odsadení v slučkách, aby bol kód dynamickejší a ľahšie čitateľný.

Odporúčané články

Toto bol sprievodca VBA Do while Loop. Tu sme diskutovali o tom, ako používať Excel VBA Do while Loop spolu s niekoľkými praktickými príkladmi a stiahnuteľnou vynikajúcou šablónou. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Ako používať funkciu FIND v Exceli?
  2. Ako používať funkciu VBA TRIM?
  3. Polia VBA Kompletný návod
  4. Ako používať VBA Select Case?

Kategórie: