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 sablon1. 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 -
- Hogyan lehet használni a FIND függvényt az Excelben?
- Hogyan kell használni a VBA TRIM funkciót?
- VBA tömbök Teljes bemutató
- Hogyan kell használni a VBA Select esetet?