Mit csinál a hurokig a VBA Excelben?
A VBA Do Loop- ban kritériumokat kell meghatároznunk az till utasítás után, ami azt jelenti, hogy mikor akarjuk, hogy a hurok leálljon, és a end utasítás maga a hurok. Tehát ha a feltétel FALSE, akkor a cikluson belül végrehajtja az utasítást, de ha a feltétel azonnal IGAZ, akkor kilép a Do Until utasításból.
Mivel a szavak maguk azt mondják, hogy valamilyen feladat elvégzéséig, amíg el nem érik a kritériumot, addig csináld, amíg a ciklust szinte az összes programozási nyelvben nem használjuk, a VBA-ban is néha a Do till ciklust használjuk. Addig, amíg a hurok azt jelenti, hogy tegyen valamit, amíg az állapot IGAZsá nem válik. Olyan, mint egy logikai függvény, amely az IGAZ vagy HAMIS alapján működik.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_2.jpg.webp)
Ez ellentétes a Do While ciklussal, ahol a Do while a ciklusokat futtatja, amíg a feltétel IGAZ.
Szintaxis
A Addig ciklusnak kétféle szintaxisa van.
1. szintaxis
Addig (feltétel) (Néhány feladat végrehajtása) Hurok
2. szintaxis
Végezzen (végezzen néhány feladatot) Loop-ig (feltétel)
Mindkettő nagyon hasonlónak tűnik, és van egy egyszerű megkülönböztetés.
Az első szintaxisban a „Addig” hurok először ellenőrzi a feltételt, és megkapja a feltétel IGAZ vagy HAMIS eredményt. Ha a feltétel FALSE, akkor végrehajtja a kódot és végrehajt egy megadott feladatot, és ha a feltétel IGAZ, akkor kilép a ciklusból.
A második szintaxisban a „Do” ciklusban először a cod feladatot hajtja végre, majd teszteli, hogy a feltétel IGAZ vagy HAMIS. Ha a feltétel HAMIS, akkor ismét visszamegy és elvégzi ugyanazt a feladatot. Ha a feltétel IGAZ, akkor azonnal kilép a ciklusból.
Példa
Tudom, hogy az elméleti részben nem olyan könnyű megérteni bármit is, de aggódni sem kell. Könnyű példákat adunk a hurok megértéséhez. Olvass tovább. A tanulás megkezdéséhez hajtsuk végre az első 10 sorszám beszúrását az A1 és A10 cellák között.
Az alábbi lépéseket követve alkalmazza a „Csináld” ciklust.
1. lépés: Az alfolyamat elindításához először hozzon létre egy makrónevet.
Kód:
Sub Do_Until_Example1 () End Sub
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_3.jpg.webp)
2. lépés: Adjon meg egy változót hosszúnak. Az „x” -t hosszú adattípusként definiáltam.
Dim x olyan hosszú
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_4.jpg.webp)
3. lépés: Most írja be a „Addig” szót.
Addig csináld
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_5.jpg.webp)
4. lépés: A hurok nevének elindítása után írja be a feltételt „x = 11” értékként.
Addig, amíg x = 11
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_6.jpg.webp)
x = 11 az általunk alkalmazott logikai teszt. Tehát ez a vonal azt mondja, hogy addig futtassa a ciklust, amíg x nem egyenlő 11-vel.
5. lépés: Alkalmazza a CELLS tulajdonságot, és szúrjuk be az 1-től 10-ig terjedő sorszámokat.
Sejtek (x, 1). Érték = x
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_7.jpg.webp)
Megjegyzés: Itt említettük, hogy az „x” értéke 1-től kezdődik, tehát először az x értéke 1-vel egyenlő. Ahol az „x” értéke 1-vel egyenlő.
6. lépés: Most zárja le a hurkot a „LOOP” szó beírásával.
Sub Do_Until_Example1 () Dim x Olyan hosszú, amíg x = 11 Cella (x, 1). Érték = x Loop
End Sub
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_8.jpg.webp)
Ok, elkészültünk a kódoló résszel, most soronként teszteljük a kódokat, hogy jobban megértsük a ciklust.
A soronkénti futtatáshoz először nyomja meg az F8 billentyűt.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_9.jpg.webp)
Először sárga színnel emeli ki a makró nevét.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_10.jpg.webp)
Amikor látja a sárga vonalat, az azt írja, hogy ezt nem hajtja végre a végrehajtás, ha még egyszer megnyomja az F8 billentyűt.
Most nyomja meg még egyszer az F8 billentyűt, a sárga vonal a Addig, amíg a hurok nem lesz.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_11.jpg.webp)
A ciklus megértéséhez tegyen egy kurzort az „x” változóra, és nézze meg az „x” változó értékét.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_12.jpg.webp)
Tehát, x = 0. Mivel a kiemelt vonal a hurok első sora, így az „x” értéke nulla, ezért nyomja le még egyszer az F8 billentyűt, és tekintse meg az „x” értékét. A kilépés előtt a kód fut, és az „x” értéket 1-nek adja.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_13.jpg.webp)
Ismét kezdje meg egy hurok futtatását az F8 billentyű lenyomásával. Lásd az „x” értékét.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_14.jpg.webp)
Most az „x” értéke 1-nek jelenik meg. Ahhoz, hogy inkrementális értéket kapjunk az „x” változóhoz, át kell rendelnünk az „x” változó értékét x = x + 1 értékként a hurokban.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_15.jpg.webp)
Most nyomja meg még egyszer az F8 billentyűt, és meg kell kapnunk az 1 értéket az A1 cellában.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba.gif)
Most nyomja meg még egyszer az F8 billentyűt, és nézze meg, mi az „x” értéke.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_16.jpg.webp)
Az „x” változó értéke most 2. Tehát feltételünk azt mondja, hogy addig futtassuk a ciklust, amíg a feltétel IGAZsá nem válik, így a ciklusunk addig fut, amíg az „x” értéke 11 lesz.
Nyomja meg még egyszer az F8 billentyűt. Visszaugrik a „Csinálj” hurokra.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_17.jpg.webp)
Nyomja meg még kétszer az F8 billentyűt, és megkapjuk a 2 értéket az A2 cellában.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_2.gif)
Nyomja meg ismét az F8 billentyűt, és az „x” értéke most 3 lesz.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_18.jpg.webp)
Nyomja meg ismét az F8 billentyűt, és ismét visszatér a hurokhoz.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_19.jpg.webp)
Így ez a hurok addig folytatja a feladat végrehajtását, amíg az „x” értéke 11 lesz. Most addig hajtottam végre a ciklust, amíg az „x” értéke 11 lett.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_20.jpg.webp)
Ha most megnyomom az F8 billentyűt, akkor is visszatér a ciklusra.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_21.jpg.webp)
De ha most megnyomom az F8 billentyűt, akkor kilép a ciklusból, mert az alkalmazott feltétel „IGAZ” lesz, azaz x = 11.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_22.jpg.webp)
Tehát most 1-től 10-ig van sorszámunk az excel lapon.
![](https://cdn.know-base.net/3000517/vba_do_until_loop_step_by_step_examples_to_use_do_until_in_vba_23.jpg.webp)
Tehát ez a „Csinálom” hurok alapötlete. A hurkok megértéséhez soronként kell futtatnia a kódot, amíg meg nem kapja a körkörös ismereteket.