VBA Break For Loop - Jak ukončit smyčku v aplikaci Excel VBA?

Excel VBA Break For Loop

Ve VBA Break For Loop je také známý jako exit for loop, každá smyčka v jakémkoli postupu dostala některou sadu instrukcí nebo kritérií, aby mohla běžet nuber času, ale je velmi běžné, že se některá smyčka dostane do nekonečné smyčky, čímž poškodí kód v takových scénářích potřebujeme break for nebo exit for loop, aby vyšly z určitých situací.

Řekněme, že jsme instruovali smyčku, aby běžela 10krát, a na základě dané podmínky, pokud je hodnota buňky nebo jakékoli jiné zadané kritérium úspěšné, musí ukončit smyčku Excel, než dokončí kvótu celé smyčky 10. V tomto článku vám ukážeme, jak ukončit smyčku na základě daných kritérií.

Jak přerušit / ukončit smyčky ve VBA?

# 1 - Break For Next Loop

VBA For Next Loop se používá k smyčce přes buňky a provádění specifické sady úkolů. Podívejte se například na níže uvedený kód VBA.

Kód:

Sub Exit_Loop () Dim K tak dlouho, pro K = 1 až 10 buněk (K, 1). Hodnota = K Další K Konec Sub

Tím se vloží sériová čísla z buňky A1 do A10.

To je u For Next Loop zřejmá věc.

Teď chci přerušit smyčku, když se v prvních 10 buňkách najde libovolná hodnota. Za tímto účelem jsem do buňky A8 zadal nějakou textovou hodnotu.

Nyní to chci v kódu poučit slovy: „má-li buňka smyčky určitou hodnotu, musí smyčku opustit před předem stanoveným limitem.“

Kód:

Sub Exit_Loop () Dim K As Long For K = 1 až 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else Exit For End If Next K End Sub

Podívejte se na tento řádek kódu:

If Cells (K, 1) .Value = “” Then
Cells (K, 1) .Value = K
Else
Exit For
End If

Říká, že If Cells (K, 1). Hodnota = „buňka smyčky se rovná ničemu pokračujte ve smyčce vkládání sériových čísel od 1 do 10.

Poslední část smyčky říká:

Jiný

Ukončete pro

Pokud výše uvedená podmínka není TRUE, pak smyčka „Exit For“.

Nyní spusťte kód. Vloží sériová čísla až do buňky A7.

Výše uvedený kód okamžitě opustil smyčku, aniž by něco řekl; jak víme, že opustil smyčku.

Abychom tuto nejednoznačnost odstranili, musíme níže umístit jedno jednoduché pole se zprávou VBA.

Kód:

Sub Exit_Loop () Dim K As Long For K = 1 To 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else MsgBox "Máme v buňce neprázdnou buňku" & Buňky (K, 1). Adresa & vbNewLine & „Opouštíme smyčku“ Exit For End If Next K End Sub

Při procházení buňkou, pokud je nalezena nějaká neprázdná buňka, zobrazí se zpráva: „V buňce A8 máme neprázdnou buňku. Opouštíme smyčku “.

To uživatele informuje také o ukončení smyčky s adresou buňky. Pokud omylem zadáte libovolnou hodnotu, můžeme zkontrolovat adresu buňky vrácenou v okně se zprávou.

# 2 - Break Do Until Loop

Podobně jako jsme opustili For Next Loop, můžeme také opustit smyčku „Do Until“. Podívejte se například na níže uvedený kód.

Kód:

Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do, dokud K = 11 buněk (K, 1). Hodnota = KK = K + 1 Loop End Sub

Tento kód také plní úlohu vkládání sériových čísel. Například pokud chceme opustit smyčku, když hodnota proměnné „k“ dosáhne 6, musíme zadat kritéria jako IF k = 6 a poté smyčku opustit.

Kód:

Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do dokud K = 11 If K <6 Then Cells (K, 1). Hodnota = K Elit Exit Do End If K = K + 1 Loop End Sub

Tím se smyčka spustí, dokud se hodnota proměnné nestane 6. Poté smyčku opustí. Chcete-li uživateli zobrazit zprávu, můžete také přidat okno se zprávou.

Kód:

Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do dokud K = 11 If K 5 "Exit Do End If K = K + 1 Loop End Sub

Zobrazí se zpráva níže.

Takto můžeme na základě daných kritérií opustit smyčku, pokud jsou kritéria TRUE, nebo můžeme ve smyčce pokračovat.

Zajímavé články...