Excel VBA do slučky

Vykonajte, kým slučka nebude opakovať príkazy, až kým sa podmienka / kritériá nestanú TRUE. Vyhlásenia vykoná, pokiaľ sú podmienky FALSE. Akonáhle sa podmienka / kritériá stanú PRAVDIVOU, ukončí slučku. Môže to vyzerať opačne ako slučka Do while, kde slučka beží tak dlho, kým sú kritériá PRAVDY a ukončená hneď, ako sú kritériá FALSE.

Pozrite si vývojový diagram nižšie, ktorý vysvetľuje fungovanie slučky Do Until:

Syntax Do Do Loop v programe Excel VBA

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

Syntax 1:

 Nerobte opakovanie (podmienky) (vyhlásenia, ktoré sa majú vykonať) 

Syntax 2:

 Do (Vyhlásenia, ktoré sa majú vykonať) Slučka do (Podmienka) 

Základným rozdielom medzi týmito dvoma syntaxami je vykonávanie. V prvej syntaxi slučka vždy skontroluje, či je podmienka true alebo false. Ak je False, zopakuje sa opakovanie slučky. Akonáhle sú podmienky / kritériá pravdivé, cyklus sa ukončí. V tomto prípade existuje možnosť, že slučka bude ukončená pri prvej iterácii samotnej (ak je podmienka true). Preto v takom prípade nebudete mať žiadny výstup. V druhej syntaxi však slučka spočiatku vykoná príkazy a potom skontroluje, či je to pravda alebo nepravda. Ak je podmienkou FALSE, znova vykoná rovnakú množinu príkazov a skontroluje stav. Ak prvá iterácia sama osebe dáva podmienku True, táto slučka sa ukončí, ale pred tým bude vykonaný príkaz. V takom prípade dostaneme aspoň jednu iteráciu (ako nulový výstup).

Nakoniec bude výstup týchto dvoch kódov rovnaký. Poprava je však niečo, čo tieto dva odlišuje.

Príklad programu Excel VBA Do Loop

Poďme sa pozrieť na príklady Do Until Loop v programe Excel VBA.

Túto šablónu VBA si môžete stiahnuť do šablóny Excel tu - VBA do šablóny, aby sa slučka Excel

Príklad č. 1 - VBA nerobí opakovanie, keď sú podmienky skontrolované na začiatku

Ak chcete použiť slučku Do Until v programe Excel VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Vložte nový modul do editora jazyka Visual Basic (VBE), aby ste mohli písať kód.

Krok 2: Definujte čiastkový postup, ktorý dokáže uložiť kód makra, ktorý budete písať.

kód:

 Sub Do_Until_Ex1 () End Sub 

Krok 3: Definujte novú premennú „X“ s typom údajov ako „Long“. Túto premennú možno použiť ako podmienku / kritérium v ​​rámci cyklu Do Until.

kód:

 Sub Do_Until_Ex1 () Dim X ako Long End Sub 

Krok 4: Nastavte počiatočnú hodnotu 1 pre premennú X.

kód:

 Sub Do_Until_Ex1 () Dim X ako dlho X = 1 End Sub 

Krok 5: Začnite cyklus s kľúčovými slovami Do Until.

kód:

 Sub Do_Until_Ex1 () Dim X Tak dlho, X = 1 Do Do konca Sub 

Krok 6: Zadajte kritériá ako X = 11 v poli Do Until. Toto je stav, ktorý umožňuje prerušenie slučky, keď je pravda. To znamená, že slučka bude bežať, kým hodnota X = 11. Len čo sa hodnota pre X rovná 11, slučka sa ukončí.

kód:

 Sub Do_Until_Ex1 () Dim X ako dlhé X = 1 Do Do X = 11 End Sub 

Krok 7: Teraz použite bunky VBA. Hodnotová funkcia, aby bolo možné pridať druhú mocninu každého čísla do X pod prvým stĺpcom.

kód:

 Sub Do_Until_Ex1 () Dim X ako dlhé X = 1 Do Do X = 11 buniek (X, 1). Hodnota = X * X End Sub Sub 

Krok 8: Opäť musíme nastaviť prírastok v X po 1, aby sa pri každom spustení slučky a skontrolovala podmienka, prejde na ďalšie číslo a uložila sa druhá mocnina v príslušnej bunke až do čísla 11.

kód:

 Sub Do_Until_Ex1 () Dim X ako dlhé X = 1 Do Do X = 11 buniek (X, 1). Hodnota = X * XX = X + 1 End Sub 

Krok 9: Vyplňte postup Do cyklu, kým na konci kódu nezadáte kľúčové slovo „Slučka“.

kód:

 Sub Do_Until_Ex1 () Dim X ako dlhé X = 1 Do Do X = 11 buniek (X, 1). Hodnota = X * XX = X + 1 End Loop Sub Sub 

V tomto kóde sme chceli mať štvorcové hodnoty pre čísla začínajúce od 1 do 11 (Len čo je hodnota 11, slučka sa ukončí). V každej bunke tabuľky Excel (až do bunky číslo 11) sa hodnoty uložia. Prírastok 1 jednotky umožňuje vždy zvýšiť číslo o 1 v predchádzajúcej hodnote X a druhá mocnina tohto čísla sa vytlačí v príslušnej bunke. Napríklad druhá mocnina pre 3 sa vytlačí pod 3. bunku aktívneho Excelu. Táto slučka beží, pokiaľ X nie je rovná 11. Preto z bunky A1 do bunky A10 dostávame na druhú mocninu hodnoty od 1 do 10 (pri slučke číslo 11 ukončená).

Krok 10: Stlačením tlačidla Spustiť alebo stlačením klávesu F5 spustite tento kód a pozrite si výstup.

Príklad č. 2 - Do cyklu, keď sú podmienky skontrolované na konci cyklu

Ak chcete použiť slučku Do Until v programe Excel VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Definujte novú čiastkovú procedúru v rámci modulu VBE.

kód:

 Sub Do_Until_Ex2 () End Sub 

Krok 2: Definujte premennú „Y“ s typom údajov ako „Long“. Táto premenná bude užitočná pri vytváraní podmienok.

kód:

 Sub Do_Until_Ex2 () Dim Y ako Long End Sub 

Krok 3: Nastavte počiatočnú hodnotu premennej „Y“ ako 1.

kód:

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

Krok 4: Pridajte podmienku Do zadaním Do na ďalšom riadku po nastavení počiatočnej hodnoty Y na 1.

kód:

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

Krok 5: Do časti Do loop pridajte časť kódu, ktorú chcete vykonať. Tu uvádzame rovnaký príklad ako vyššie (pomôže nám to spoznať, ako sú výstupy rovnaké, ale kompilácie sú pre dva z týchto kódov odlišné).

kód:

 Sub Do_Until_Ex2 () Dim Y tak dlho, Y = 1 Dohy ("Príklad 2"). Bunky (Y, 1). Hodnota = Y * Y End Sub 

Krok 6: Po každej iterácii slučky ste chceli, aby sa hodnota zvýšila o 1 jednotku, a zadajte príkaz pre túto sekciu Do.

kód:

 Sub Do_Until_Ex2 () Dim Y ako dlho Y = 1 Dohy ("Príklad 2"). Bunky (Y, 1). Hodnota = Y * YY = Y + 1 End Sub 

Krok 7: Pridajte záverečné vyhlásenie pre túto slučku s kľúčovým slovom ako „Loop“.

kód:

 Sub Do_Until_Ex2 () Dim Y tak dlho, Y = 1 Dohy ("Príklad 2"). Bunky (Y, 1). Hodnota = Y * YY = Y + 1 slučka End Sub Sub 

Počkaj! Je tu niečo viac. Do tejto slučky, tentoraz za kľúčové slovo Loop, musíte pridať kritériá až do tejto podmienky. Umožní kompilátoru skontrolovať stav na konci slučky.

Krok 8: Pridajte do Y = 11 ako podmienku po Loop Keyword.

kód:

 Sub Do_Until_Ex2 () Dim Y tak dlho, Y = 1 Dohy ("Príklad 2"). Bunky (Y, 1). Hodnota = Y * YY = Y + 1 slučka, kým Y = 11 Koniec Sub 

Krok 9: Spustite tento kód stlačením klávesy F5 alebo Run a pozrite si kúzlo pod hárkom s názvom „Príklad 2“.

Ako tento kód funguje?

Systém umocní druhú mocninu na hodnotu Y zakaždým pod slučkou a uloží ju do druhého stĺpca hárku s názvom „Príklad 2“ riadok po riadku. Po každej iterácii sa aktuálna hodnota Y zvýši o 1 jednotku a aktualizovaná hodnota sa zaokrúhli a uloží. Pokiaľ je hodnota menšia ako hodnota kritéria (Y = 11), kód vykoná druhú mocninu a uloží ju. Len čo kompilátor hodnoty dosiahne hodnotu Y = 11, zastaví vykonávanie kódu a ukončí to rovnaké.

Oba kódy poskytujú podobný výstup, ale logicky je rozdiel v kompiláciách pre oba. V prvom type kódu sa podmienka kontroluje na začiatku cyklu a ak je FALSE, potom iba cyklus začína vyhodnocovať nasledujúci výraz. V druhom príklade však kód začína spustiť slučku a vykonáva príkazy Do na začiatku (ukladanie hodnôt do vyrovnávacej pamäte pre vykonanie príkazov). Na konci cyklu kompilátor príde s kritériom a skontroluje to isté s hodnotou vyrovnávacej pamäte.

Čo je potrebné pamätať

  • VBA Do Until je presne opačný prípad programu Excel VBA Do while. Slučka VBA Do while funguje tak dlho, kým je podmienka PRAVDIVÁ. Keď je podmienka FALSE, cyklus Do while sa ukončí. Na druhej strane, VBA Do Until beží, pokiaľ je podmienka FALSE. Akonáhle je podmienka PRAVDA, slučka sa ukončí.
  • Má dva spôsoby konania, jeden, keď je stav skontrolovaný na začiatku slučky a druhý, keď je stav skontrolovaný na konci slučky.

Odporúčané články

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

  1. VBA počas slučky
  2. LOOKUP Formula v Exceli
  3. Kompletné výukové programy o slučkách VBA
  4. Vyhľadávacia tabuľka v Exceli

Kategórie: