VBA Míg a hurok

A VBA, míg a Loop egy fontos és erőteljes koncepció, amelyet a legtöbb programozási nyelvben láthatott. Ha elsajátítja ezt a koncepciót a VBA alatt, képes lesz nagy teljesítményű szkripteket készíteni, amelyek teljesen különféle és kényelmes módon működnek a táblázatkezelő adatokkal. Ebben a cikkben készülj fel a különböző hurkok világának felfedezésére, és találjon példákat a segítségére.

A „loop” célja, hogy egy bizonyos mondatmondatot megismételjen, feltéve hogy egy feltétel teljesül. Pontosabban, míg a hurok megismétli a megfelelő állítást, míg a feltétel igaz. Ha a feltétel hamis lesz (Nem teljesül), a hurok megszűnik.

Alapvetően kétféle ciklus létezik a Microsoft Excel VBA-ban:

  • VBA Míg a Wend hurok
  • VBA do-while hurok

A VBA míg a Wend hurok létezik, hogy a kód összeegyeztethető legyen a kódok régebbi verziójával. A VBA Do-While a while ciklus frissített verziója, amely rugalmasabb és strukturáltabb az előzőhöz képest, és a Microsoft közösség által ajánlott használni.

Csak arra az esetre, ha kíváncsi, hogy Wend mit jelent, ez a Some End rövid formája, és ugyanúgy működik.

Példák a VBA míg a hurok

Merüljünk mélyen a különféle típusú VBA, míg a hurkok lépésről lépésre.

Itt letöltheti ezt a VBA Míg Hurok Excel sablont - VBA Míg Hurok Excel sablon

1. példa

VBA Míg a Wend hurok

Szintaxis:

Vegyünk egy példát, hogy ezt jobban megismerjük.

  • Definiáljon egy alrendszert egy makró létrehozásához az új modul alatt.

Kód:

 Sub WhileEx1 () A Sub befejezése 

  • Állítson be két változót: Szám egyre és Összeg nullára.

Kód:

 Sub WhileEx1 () Szám = 1 Összeg = 0 Vége Sub 

  • Állítson be egy bizonyos ideig feltételt a Number változóhoz.

Kód:

 Sub WhileEx1 () Szám = 1 Összeg = 0 Míg a szám <= 10 Vége a Sub 

  • Adja hozzá az ehhez a feltételhez végrehajtandó utasításokat.

Kód:

 Sub WhileEx1 () Szám = 1 Összeg = 0 Míg Szám <= 10 Összeg = Összeg + Szám Szám = Szám + 1 Vége Sub 

  • Adja hozzá a Debug.Print Sum-ot, hogy az első 10 természetes szám összege egyenként kinyomtatható legyen az azonnali ablakban.

Kód:

 Sub WhileEx1 () Szám = 1 Összeg = 0 Míg Szám <= 10 Összeg = Összeg + Számszáma = Szám + 1 Debug.Print Összeg End Sub 

  • Végül fejezze be a while ciklust Wend-nyilatkozattal.

Kód:

 Sub WhileEx1 () Szám = 1 Összeg = 0 Míg Szám <= 10 Összeg = Összeg + Számszáma = Szám + 1 Debug.Print Sum Wend End Sub 

  • A Kód futtatásához és a kimenet megtekintéséhez nyomja meg az F5 vagy a Futtatás gombot.

Ebben a kódban az összegváltozót nullára állítják. Tehát minden alkalommal, amikor a számot 1-rel növelik, amíg el nem éri a 10-et (a hurok használatával), az összegváltozó hozzáadja az előző összeget az aktuális számmal, és megjeleníti azt az azonnali ablak alatt soronként vagy lépésenként, amit mondhat.

2. példa

VBA do-while hurok

Kész hurok Amikor a feltételt ellenőrzik, mielőtt a hurok elindul

Kétféle módon lehet végrehajtani, míg a hurok végrehajtható.

  • Feltételt adhat hozzá a hurok elindulása előtt (Ez megegyezik a Míg a Wend hurokkal). Ebben az esetben a hurok nem ismétlődik, ha a feltétel első alkalommal megbukik.
  • A feltételt hozzáadhatja az ellenőrzés hurokának utolsó részéhez. Ebben az esetben a hurok legalább egy iterációja megtörténik, mielőtt a feltétel sikertelen lesz.

Szintaxis:

Vegyünk egy példát a dolgok világosabbá tétele érdekében.

  • Helyezzen be egy új modult, és határozjon meg egy új alapelvet a makró meghatározásához.

Kód:

 Sub WhileEx2 () Sub befejezése 

  • Adjon meg egy új I változót egészként. És kezdje el annak értékét 1-re.

Kód:

 Sub WhileEx2 () Dim i Dim Egész szám i = 1 Vége Sub 

  • A Do-While használatával adjon hozzá egy feltételt a hurok elejéhez.

Kód:

 Sub WhileEx2 () Dim i Dim Egész szám i = 1 Tegye, míg i <= 10 Vége Sub 

  • Add a végrehajtandó utasításokat, amíg a feltétel teljesül. Adja hozzá az alábbi kód sort a makróhoz.

Kód:

 Sub WhileEx2 () Dim i Dim Egész szám i = 1 Tegye, miközben i <= 10 cella (i, 1) .Érérték = i * i Sub vége 

Ez az állítás lehetővé teszi az első oszlop tizedik sorában a számok négyzetértékének tárolását.

  • Adjon hozzá még egy utasítást, amely lehetővé teszi az i-vel való növekedést 1-gyel a hurok minden iterációjánál.

Kód:

 Sub WhileEx2 () Dim i Dim Egész szám i = 1 Csinál miközben i <= 10 cella (i, 1). Érték = i * ii = i + 1 hurok vége Sub 

  • Töltse ki ezt a hurkot a Loop utasítás hozzáadásával a kód végére.

Nézzük meg a kód kikerülését:

Az i értékeinek 1-től (kezdetben 1 = 10) 10-ig kiszámítja, i * i (vagyis négyzetérték minden i egész értékére), és beírja az 1. oszlop (azaz az A oszlop) 1–10. Soraiba . A kimenet nem más, mint az 1-10 egész számok négyzetértékei.

  • Futtassa ezt a kódot az F5 vagy a Futtatás gomb megnyomásával, és nézze meg a kimenetet.

Láthatjuk az 1-10 természetes számok négyzetes értékeit, amelyeket az A oszlop minden cellájában tárolunk.

3. példa

Do-While Loop Amikor a feltételt ellenőrzik a hurok végén

Szintaxis:

Lássunk egy példát a hurok jobb megjelenítésére.

  • Helyezzen be egy új modult, és határozjon meg egy új alapelvet a makró tárolására.

Kód:

 Sub WhileEx3 () A Sub befejezése 

  • Definiáljon egy új i egész számot, mint az előző példában, és rendeljen hozzá kezdő értéket.

Kód:

 Sub WhileEx3 () Dim i Dim Egész szám i = 1 Vége Sub 

  • Használja a Do feltételt a végrehajtandó utasítások hozzáadásához, amíg a feltétel igaz.

Kód:

 Sub WhileEx3 () Dim i Dim Egész szám i = 1 Do cella (i, 2) .Érérték = i * ii = i + 1 End Sub 

Ajánlatos a szóköz (Tab billentyű) használata a fenti kódban látható behúzásként, amely lehetővé teszi a kód zökkenőmentes futtatását, és meghatározza a kód megfelelő szerkezetformátumát is.

  • A Loop gombbal adjon hozzá egy feltételt, amelyet ellenőrizni kell az egyes utasítások végrehajtásához.

Kód:

 Sub WhileEx3 () Dim i Dim Egész szám i = 1 Do cella (i, 2) .Érérték = i * ii = i + 1 hurok, míg i <= 10 End Sub 

  • Futtassa ezt a kódot az F5 vagy a Futtatás gomb manuális megnyomásával, és nézze meg a kimenetet.

A kimenetet a fenti ábra mutatja.

Hogyan működik ez a kód a háttérrendszerben?

A rendszer szorozza az i értékét (1-től kezdve), és egyenként tárolja a második oszlopban (cellák (i, 2)) minden egyes sorra. A kód leállítja a végrehajtást, amint az i változó értéke eléri a 10-et. A kimenet lehet ugyanaz, ami logikusan azt jelenti, hogy mindkét kód ugyanolyan módon működik. De a fő különbség a kód fordítása. Az utolsó példában a feltétel már ott volt, és a rendszer tudta, hogy mekkora számot kell megtennie. Ebben a kódban azonban a rendszer nem ismeri az utasítások végrehajtásakor fennálló feltételeket, és egyenként futtatja az iterációt. Mindaddig, amíg a feltétel hamis, a kód leállította a végrehajtást.

Ne felejtsd el a VBA-t, míg a hurok

  • A While-Wend hurok elavult, és csak kompatibilis a kódexek régebbi verzióival. Ehelyett Do-while hurkot kell használnia.
  • A Do-Bár hurok sokkal rugalmasabb és jól felépített, mint a Some-Wend hurok.
  • A Do-while hurok kétféleképpen használható, ahol egy esetben először hozzáadhatja az ellenőrizendő feltételt, majd hozzáadhat a feltételnek megfelelő utasításokat. Más módon először felvehet utasításokat, majd később hozzáadhatja az ellenőrizendő feltételt.
  • A behúzásokat ajánlatos hurokban használni, hogy a kód dinamikusabb és könnyebben olvasható legyen.

Ajánlott cikkek

Ez egy útmutató a VBA Do While Loop-hoz. Itt megvitattuk az Excel VBA Do While Loop használatának módját, néhány gyakorlati példával és letölthető Excel sablonnal együtt. Megnézheti más javasolt cikkeinket -

  1. Hogyan lehet használni a FIND függvényt az Excelben?
  2. Hogyan kell használni a VBA TRIM funkciót?
  3. VBA tömbök Teljes bemutató
  4. Hogyan kell használni a VBA Select esetet?

Kategória: