Slučky VBA Zoznam 4 najlepších typov slučiek (s príkladmi)

Slučky Excel VBA

Smyčky sa bežne používajú vo všetkých programovacích jazykoch, kde existuje určitá potreba alebo kritériá, keď potrebujeme určitý kód na spustenie v určitých časoch, pre tieto kódy používame slučky, teraz existuje veľa typov slučiek vo VBA, napríklad Do while, Do until, For Loop and For each loop, these loops help code to execute until the condition is met.

Dovoľte mi urobiť toto vyhlásenie na samom začiatku. "Ak chcete ovládať program VBA, musíte dokončiť koncept pojmu slučky v makrách VBA."

Smyčka nie je nič iné ako prechádzať celým radom buniek, prechádzať celým radom objektov a opakovať rovnakú úlohu pri zbere buniek alebo predmetov. Namiesto vykonania úlohy v samostatnej sade riadkov kódov pomocou slučiek môžeme dĺžku kódu skrátiť na najmenšiu možnú mieru.

Zoznam najlepších 4 typov slučiek VBA

  1. Pre ďalšiu slučku
  2. Pre každú slučku
  3. Robte While Loop
  4. Robiť do slučky

Pozrime sa podrobne na každý z týchto typov.

Typ # 1 - Pre ďalšiu slučku

Smyčka For Next nám umožňuje prechádzať rozsahom buniek a vykonávať rovnakú úlohu pre každú bunku uvedenú v slučke. Tu musíme povedať počiatočné a konečné číslo.

Príklad

Napríklad ak chcete vložiť sériové čísla od 1 do 10, nižšie je tradičný spôsob vkladania sériových čísel.

Vedľajšie sériové číslo ()

Rozsah („A1“). Hodnota = 1
rozsah („A2“). Hodnota = 2
Rozsah („A3“). Hodnota = 3
Rozsah („A4“). Hodnota = 4
Rozsah („A5“). Hodnota = 5
Rozsah („A6“). Hodnota = 6
Rozsah („A7“). Hodnota = 7
Rozsah („A8“). Hodnota = 8
Rozsah („A9“). Hodnota = 9
Rozsah („A10“). Hodnota = 10

Koniec Sub

Vyzerá dobre, však? Ale problém tu je iba 10-krát, čo musíme vykonať túto úlohu. Ale predstavte si, čo keď chcete vložiť 100 alebo 1000 čísel, môžete napísať kód 100 alebo 1000 riadkov. Je to nemožné a práve tam sa hodí krása slučky For Next.

Krok 1: Otvorte makro a deklarujte premennú i ako Celé číslo.

Sub Insert_Serial_Number ()

Dim i As Integer

Koniec Sub

Krok 2: Teraz otvorte slučku For Loop . Tu uveďte začiatok a koniec slučky pomocou premennej i.

Krok 3: Teraz napíšte kód, ktorý chcete vykonať. Musíme vložiť čísla od 1 do 10 v bunkách A1 až A10. Namiesto použitia metódy Range použite metódu Cells.

Pýta sa na číslo riadku, pretože premennú i sme už najskôr deklarovali ako celé číslo. Jeho hodnota je 1. Takže spomenúť aj ako vaše číslo riadka a 1 ako vaše číslo stĺpca.

Teraz by mala byť hodnota aktuálnej hodnoty bunky jedna, namiesto toho, aby sme ako hodnotu uviedli číslo jedna, i . Vzhľadom k tomu, zakaždým slučka beží aj hodnota sa zvyšuje o 1.

Teraz stlačte kláves F8 a prechádzajte do jedného riadku. Stláčajte kláves F8, kým sa nedostane na slučku For.

Táto žltá farba znamená, že sa vybraný riadok kódu čoskoro spustí. Umiestnite kurzor na I a táto hodnota sa zobrazí ako nula.

Teraz stlačte ešte raz kláves F8 a umiestnite kurzor na i & teraz je hodnota 1.

Takže hodnoty i vo všetkých sú teraz rovné 1. „ Bunky (I, 1). Hodnota = I“ znamená bunky (1, 1). Hodnota = 1.

Stlačte kláves F8 a pozrite si hodnotu v bunke A1. V bunke A1 musíte vidieť 1.

A teraz, ak stlačíte klávesu F8, bude to ísť späť do slučky for ešte raz, pretože koniec limit premennej i je 10. Tentokrát som hodnota bude 2.

Slučka For the Next pobeží 10-krát a vloží sériové čísla od 1 do 10.

Typ 2 - pre každú slučku

For each loop in VBA is for looping through a collection of objects. Pre ďalšiu slučku sa bude prechádzať bunkami a vykonávať danú úlohu, a Pre každú slučku, ktorá bude prechádzať objektmi, ako sú pracovné listy, grafy, zošity, tvary.

Pomocou tejto slučky môžeme prechádzať všetky pracovné listy a vykonávať niektoré úlohy. Môžete napríklad prehľadávať všetky pracovné hárky a skryť a zobraziť pracovné hárky.

Príklad č

Ak chcete skryť všetky pracovné hárky okrem listu, na ktorom pracujete, ako to urobíte? Ak máte v zošite 20 listov, je to časovo náročný proces. Ale s cyklom FOR EACH môžeme túto úlohu vykonať.

Mám 5 listov a chcem skryť všetky listy okrem listu „Main“ pod kódom, ktorý by úlohu urobil za mňa.

Sub To_Hide_All_Sheet ()

Dim Ws As Worksheet

Pre každú W v ActiveWorkbooku. Pracovné listy

Ak Ws.Name „Hlavné“, potom
Ws.Visible = xlSheetVeryHidden
Koniec Ak

Ďalšie Ws

Koniec Sub

Príklad č

Ak chcete skryť všetky skryté listy, potom za vás urobí prácu kód uvedený nižšie.

Sub To_UnHide_Specific_Sheet ()

Dim Ws As Worksheet

Pre každú W v ActiveWorkbooku. Pracovné listy

Ws.Visible = xlSheetVisible

Ďalšie Ws

Koniec Sub

Typ 3 - Robte pri cykle

Smyčka Do While vykonáva úlohu, kým je daná podmienka TRUE a akonáhle sa podmienka stane FALSE, prestane so slučkami. Na rozdiel od ostatných dvoch slučiek robí Do While testovanie podmienky na konci slučky, nie na začiatku.

Ukážem vám príklad vkladania sériových čísel so slučkou Do While.

Sub Do_While_Example ()

Dim i As Integer

i = 1
Robiť, kým i <11
buniek (i, 1). Hodnota = i
i = i + 1
Smyčka

Koniec Sub

Vyššie uvedená slučka bude prebiehať, kým i je menej ako 11 a stále vkladá sériové čísla. V okamihu, keď budem väčší ako 11 rokov, prestane to robiť slučky.

Typ # 4 - Robiť do slučky

Na rozdiel od slučky Do While, slučka Do While nefunguje, keď je podmienka TRUE; skôr sa točí, až kým nie je podmienka FALSE. Napríklad si pozrite nasledujúci kód.

Sub Do_Until_Example ()

Dim i As Integer

i = 1
Robiť, kým i = 11
buniek (i, 1). Hodnota = i
i = i + 1
slučka

Koniec Sub

Jediný rozdiel medzi slučkou Do While & Do Until je operátor, ktorý zadáme. V úlohách Do, Aj keď sme spomenuli spustenie cyklu, kým i je menšie ako (<), 11, ale v cykle do until, sme spomenuli spustenie cyklu, kým i sa rovná (=) až 11.

Na čo treba pamätať

  • Existuje pokročilejší príklad slučky Excel VBA, ale každej z nich sa podrobne venujeme v samostatnom článku.
  • Každá slučka je pre objektové premenné.
  • Aj keď to vyzerá rovnako, zmienka o stave je veľmi dôležitá.
  • Smyčky sú veľmi dôležité pojmy.

Zaujímavé články...