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, aby smyčka běžela 10krát a na základě podmínky dané, pokud je hodnota buňky nebo jakákoli jiná dodaná kritéria úspěšná, musí ukončit smyčku Excel, než dokončí kvótu celé smyčky 10. V tomto článku , ukážeme vám, jak ukončit smyčku na základě daných kritérií.

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

Tuto šablonu VBA Break For Loop Excel si můžete stáhnout zde - VBA Break For Loop Excel Template

# 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ů. Například se podívejte 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 jakákoli hodnota, za to jsem do buňky A8 zadal nějakou textovou hodnotu.

Nyní to chci poučit v kódu a říci „pokud má 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

Buňky (K, 1). Hodnota = K.

Jiný

  Ukončete pro

Konec, pokud

Říká If If Cells (K, 1) .Value = “” looping cell is equal to nothing continue the loop of inserting serial numbers from 1 to 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, který 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 umístit jednu jednoduchou schránku zpráv VBA, jak je uvedeno níže.

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 prázdnou buňku, v buňce" & 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, se zobrazí zpráva „V buňce A8 máme neprázdnou buňku. Opouštíme smyčku “.

To uživatele informuje o ukončení smyčky také 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

Stejně jako jsme opustili For Next Loop, podobně můžeme opustit také 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 hodnota proměnné nebude 6, poté smyčku opustí. Chcete-li zprávu zobrazit uživateli, můžete také přidat schránku 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.

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