Slučky Excel VBA

Slučky sa môžu považovať za najlepšie fungujúce komponenty VBA a môžu sa tiež považovať za jadro makier. Zvyčajne vám pomôžu zredukovať počet riadkov vo vašom kóde a robiť prácu v priebehu niekoľkých minút, čo môže človeku trvať hodiny.

V každodennom živote prichádza programátor s prípadmi, keď potrebuje znova a znova spustiť rovnakú množinu kódu. Nazýva sa opakovanie. Je zrejmé, že zakaždým, keď spustíte rovnaký kód, získate približne rovnaký výsledok s čiastočnou zmenou premennej. Slučkovanie má veľké množstvo výhod, ale najdôležitejšou zo všetkých je automatizácia. Pomáha to automatizovať.

Ak ste predtým nepoužívali skript VBA, stačí otvoriť vynikajúci zošit a stlačiť Alt + F11 . Otvorí sa projekt VBA.

Poďme hlbšie dovnútra.

Predpokladajme, že sme chceli vytlačiť 1 až 10 čísiel naraz. Môžeme to urobiť pomocou nasledujúceho kódu.

kód:

 Sub loop1 () Debug.Print 1 Debug.Print 2 Debug.Print 4 Debug.Print 5 Debug.Print 6 Debug.Print 7 Debug.Print 8 Debug.Print 9 Debug.Print 10 End Sub 

Ak sa dokážete rýchlo dostať cez tento kód, pridal som Debug.Print jeden po druhom, aby som vytlačil čísla od 1 do 10. Po spustení kódu vidíme výstup v okamžitom okne. Okno Okamžité otvoríte stlačením klávesov Ctrl + G kdekoľvek v Exceli.

Spustite kód pomocou klávesu F5 alebo ručne, ako je to znázornené na nasledujúcom obrázku. Skontrolujte teda výstup tohto kódu.

Typy slučiek VBA v Exceli

Keďže ste programátor, nikdy nebudete radi písať opakujúce sa riadky, ktoré sa chystajú dosiahnuť rovnaký výsledok. Chceli by ste to automatizovať. Preto uvidíme rôzne slučky Excel VBA a spôsob ich použitia pomocou niekoľkých príkladov.

Typ # 1 - VBA pre ďalšiu slučku

V cykle Next VBA nám umožňuje prechádzať bunkovým rozsahom a vykonávať rovnakú úlohu pre každú bunku zadanú v slučke. Tu musí byť uvedené počiatočné číslo a konečné číslo.

kód:

 Sub loop1 () Pre i = 1 až 10 buniek (i, 1). Hodnota = i Next i End Sub 

Tento kód poskytuje presne rovnaký výstup ako predchádzajúci. Najpozoruhodnejšou vecou v tomto kóde je však zníženie počtu riadkov. Zmenšili sme 12-riadkový kód iba na 5-riadkový kód.

V tomto kóde je loop1 názov makra. Slučka for for začína od i = 1, tlačí hodnotu i (tj 1) pod vynikajúcou bunkou a potom sa opäť vracia na začiatok cyklu for a robí i = 2 tlačí hodnotu i (tj 2) v nasledujúcej bunke atď., kým kód nedosiahne svoju poslednú hodnotu, tj 10. Akonáhle kód dosiahne poslednú hodnotu i (10), kód sa sám ukončí kvôli nedostupnosti akejkoľvek celočíselnej hodnoty vyššej ako 10.

Spustite kód pomocou klávesu F5 alebo ručne. Takže môžete vidieť výstup ako je uvedené nižšie.

Typ # 2 - VBA pre slučku s krokom vpred

Ako ste videli v predchádzajúcom príklade slučky, v jednom kroku som zaznamenal nárast. V predvolenom nastavení je hodnota kroku považovaná za 1 vo VBA. Je však možné nastaviť náš vlastný krok? Predpokladajme, že chcete vidieť iba párne čísla od 1 do 20. Ako je to možné?

Ako naznačuje všeobecná matematika, čísla, ktoré sú od seba vzdialené 2 (od prvého párneho čísla 2), sa považujú za párne čísla, nie?

Použijeme rovnakú logiku. Referenčný kód nájdete nižšie.

kód:

 Sub ForwardStep () Pre i = 2 až 20 Krok 2 Bunky (i, 1). Hodnota = i Next i End Sub 

Pre hodnoty začínajúce od 2 umožňuje táto slučka tlačiť 2, 4, 6, 8 … 20 v následných vynikajúcich bunkách. Krok 2 výslovne uviedol, že od čísla 2 sa kód preskočí na nasledujúce číslo v kroku 2 (tj bude vytlačený 4) a tak ďalej. Tento proces bude pokračovať, až kým sa v bunke nevyskytne 20. Len čo sa v bunke vyskytne 20, slučka sa automaticky ukončí.

Spustite kód pomocou klávesu F5 alebo ručne. Takže môžete vidieť výstup ako je uvedené nižšie.

Typ # 3 - VBA pre slučku s krokom dozadu

Rovnakým spôsobom ako pre slučku s krokom vpred, môžeme použiť pre slučku s krokom dozadu. Čo napríklad ak nastavíme náš krok späť na -2 a spustíme slučku for for z hodnôt 20 na 2?

Uvidíme, ako to funguje.

kód:

 Sub BackwardStep () Pre i = 20 až 2 Krok -2 Debug.Print i Next i End Sub 

Po spustení kódu vidíme výstup v Okamžitom okne. Okno Okamžité otvoríte stlačením klávesov Ctrl + G kdekoľvek v Exceli.

Pretože sme v kroku -2 určili počiatočný bod slučky ako 20 a koncový bod 2, slučka začína od 20 a v kroku -2 pokračuje k nasledujúcemu číslu, ktoré je -18 a tak ďalej. Akonáhle slučka dosiahne hodnotu 2, automaticky sa ukončí a posledná hodnota sa vytlačí ako 2.

Typ # 4 - VBA vnorený do slučky

Môžeme tiež hniezdiť slučku. Nenavrhuje sa však hniezdenie tej istej slučky viac ako trikrát v kóde (môže sa to považovať za chybu v logike).

Pozrite si nasledujúci kód pre vnorené pre slučku.

kód:

 Sub NestedFor () Pre i = 1 až 10 Pre j = 1 až 2 bunky (i, j). Hodnota = i * j Ďalej j Ďalej i Koniec Sub 

V tomto príklade pri i = 1 a j = 1 makro vloží hodnotu i * j (1 * 1) do priesečníka riadku i = 1 a stĺpca j = 1 (tj bunka A1) a ide o ďalšiu hodnotu j (2) udržiavanie i = 1. Do priesečníka riadku i = 1 a stĺpca j = 2 (tj bunka B1) makro vloží hodnotu I * j (1 * 2). Slučka ignoruje nasledujúcu hodnotu j, pretože j sa mení iba od 1 do 2 a ide na nasledujúcu hodnotu i.

Pre i = 2 a j = 1 makro vloží hodnotu i * j (2 * 1) do priesečníka druhého riadku a prvého stĺpca (tj bunka A2) a pokračuje. Až do rozsahu i a j.

Spustite kód pomocou klávesu F5 alebo ručne, ako je to znázornené na nasledujúcom obrázku. Takže môžete vidieť výstup ako je uvedené nižšie.

Type # 5 - VBA Do while Loop

Slučka Do while je jednou z najzaujímavejších slučiek vo VBA. Umožňuje vám skontrolovať stav a zapísať výstup (DO), keď je splnená určitá podmienka alebo sada podmienok (alebo je podmienka / podmienky PRAVDY).

Pozrite si nasledujúci kód:

kód:

 Sub do_whileloop () Dim i As Integer i = 1 Do I keď i = 10 buniek (i, 1). Hodnota = i * ii = i + 1 End Loop End Sub 

Táto slučka funguje takto:

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 bunky 1 až 10. Výstup nie je nič iné ako druhá mocnina celých čísel 1 až 10. Presnejšie si prečítajte Loop pod týmto kódom. Je potrebné ho pridať, inak systém zaznamená chybu.

Spustite kód pomocou klávesu F5 alebo ručne. Takže môžete vidieť výstup ako je uvedené nižšie.

Toto sú niektoré z príkladov slučiek VBA, o ktoré som sa v tomto článku pokúsil postarať. Dúfam, že to bude dosť presné na to, aby sme objasnili niektoré pojmy.

Čo je potrebné pamätať

  • Pri použití slučky s krokom dozadu sa uistite, že vaše počiatočné číslo musí byť väčšie ako vaše konečné číslo a naopak.
  • V časti Do while loop sa uistite, že používate slučku na ukončenie činnosti pred ukončením celého kódu VBA. V opačnom prípade vyvolá systém chybu kompilátora s chybovým hlásením „Do Without Loop“.

Túto šablónu aplikácie VBA Loops Excel si môžete stiahnuť tu - šablónu VBA Loops Excel

Odporúčané články

Toto bol sprievodca aplikácie Excel VBA Loops. Tu sme diskutovali o typoch Excel VBA slučiek a o tom, ako ich používať 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. Funkcia VBA v programe Excel
  2. Funkcia VBA VLOOKUP
  3. Klávesové skratky programu Excel
  4. Vzorec percenta Excel

Kategórie: