VBA szünet hurokhoz Hogyan lehet kilépni a hurokból az Excel VBA-ban?

Tartalomjegyzék

Excel VBA szünet hurokhoz

A VBA-ban a Break For Loop a kilépés a ciklusnak is ismert, minden eljárásban minden hurok kapott valami utasításokat vagy kritériumokat ahhoz, hogy futtassa az idő nuberjét, de nagyon gyakori, hogy valamelyik hurok végtelen ciklusba kerül, így megrontva kódot ilyen esetekben meg kell szakítanunk vagy kilépnünk a ciklusból, hogy bizonyos helyzetekből kijöjjünk.

Tegyük fel, hogy utasítottuk a ciklust, hogy fusson 10-szer, és a megadott feltétel alapján, ha a cellaérték vagy bármely más megadott kritérium sikeres, akkor ki kell lépnie az excel ciklusból, mielőtt teljesíti a 10-es ciklust. Ebben a cikkben megmutatjuk, hogyan lehet kilépni a ciklusból a megadott kritériumok alapján.

Hogyan lehet megtörni / kilépni a hurokból a VBA-ban?

# 1 - Szünet a következő hurokhoz

A VBA For Next Loop a cellák közötti hurkolásra és egy adott feladatsor végrehajtására szolgál. Nézze meg például az alábbi VBA kódot.

Kód:

Sub Exit_Loop () Dim K, amíg K = 1-10 sejt (K, 1). Érték = K Next K End Sub

Ez be fogja illeszteni az A1 és A10 cellák közötti sorszámokat.

Ez a For Next Loop esetében nyilvánvaló.

Most meg akarom szakítani a hurkot, ha az első 10 cellában bármilyen érték található. Ehhez beírtam néhány szövegértéket az A8 cellába.

Most ezt akarom utasítani a kódba, mondván: "Ha a hurokcellának van egy bizonyos értéke, akkor az előre meghatározott határidő előtt ki kell lépnie a hurokból."

Kód:

Sub Exit_Loop () Dim K, amíg K = 1-10, ha cellák (K, 1). Érték = "" Ezután cellák (K, 1). Érték = K Másik kilépés a végért, ha következő K End Sub

Nézze meg ezeket a kódsorokat:

Ha cellák (K, 1). Érték = "", akkor
cellák (K, 1). Érték = K
más
kilépés a végre,
ha

Azt írja, hogy Ha sejtek (K, 1). Value = “a hurkoló cella egyenlő a semmivel, folytassa a sorszámok 1-től 10-ig történő beillesztését.

A hurok utolsó része ezt mondja:

Más

Kilépés

Ha a fenti feltétel nem IGAZ, akkor az „Exit For” hurok.

Most futtassa a kódot. Sorszámokat fog beilleszteni az A7 celláig.

A fenti kód azonnal kilépett a hurokból, anélkül, hogy bármit is mondott volna; honnan tudjuk, hogy kilépett a hurokból.

Ennek a kétértelműségnek a kiküszöbölése érdekében egy egyszerű VBA üzenetdobozt kell tennünk alább.

Kód:

Sub Exit_Loop () Dim K Meddig K = 1-10 Ha Cella (K, 1) .Value = "" Ezután Cells (K, 1) .Value = K Egyéb MsgBox "Nem üres cellát kaptunk, a cellában" & Cellák (K, 1). Cím és vbNewLine & "Kilépünk a ciklusból" Kilépés a végért, ha a következő K vége al

Ha a cellán keresztül haladunk, ha nem üres cellát találunk, akkor az „A8 cellában nem üres cellát kapunk” üzenet jelenik meg. Kilépünk a hurokból ”.

Ez a felhasználót tájékoztatja a hurok kilépéséről egy cellacím mellett is. Ha valamilyen értéket tévedésből adunk meg, akkor ellenőrizhetjük az üzenet mezőben visszaadott cellacímet.

# 2 - Törés a hurokig

Hasonlóan ahhoz, ahogyan kiléptünk a For Next Loop-ból, hasonlóan ki lehet lépni a „Do Until” ciklusból is. Nézze meg például az alábbi kódot.

Kód:

Sub Exit_DoUntil_Loop () Dim K Meddig K = 1 Do Addig, amíg K = 11 Cella (K, 1). Érték = KK = K + 1 Loop End Sub

Ez a kód a sorszámok beillesztését is elvégzi. Például, ha ki akarunk lépni a ciklusból, amikor a „k” változó értéke 6 lesz, meg kell adnunk a feltételeket, ha IF k = 6, majd kilépünk a ciklusból.

Kód:

Sub Exit_DoUntil_Loop () Dim K, amíg hosszú K = 1, amíg K = 11, ha K <6, akkor a cellák (K, 1). Érték = K

Ez addig futtatja a ciklust, amíg a változó értéke 6 lesz. Ezt követően kilép a ciklusból. Ha meg akarja mutatni az üzenetet a felhasználónak, hozzáadhatja az üzenet mezőt is.

Kód:

Sub Exit_DoUntil_Loop () Dim K, amíg hosszú K = 1 Do, amíg K = 11, ha K 5 "Exit Do End, ha K = K + 1 Loop End Sub

Ez az alábbi üzenetet jeleníti meg.

Így a megadott kritériumok alapján kiléphetünk a ciklusból, ha a kritériumok igazak, vagy pedig folytathatjuk a ciklust.

érdekes cikkek...