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.