Excel VBA Break for Loop
Vo VBA Break For Loop je tiež známy ako exit for loop, každá slučka v ktorejkoľvek procedúre dostala sadu inštrukcií alebo kritérií, aby mohla bežať nuber času, ale je veľmi bežné, že sa niektorá slučka dostane do nekonečnej slučky, čím poškodí kód v takýchto scenároch potrebujeme break for alebo exit for loop, aby sme prišli z určitých situácií.
Povedzme, že sme dali slučke pokyn, aby bežala 10-krát, a na základe danej podmienky, ak je hodnota bunky alebo akékoľvek iné zadané kritérium úspešné, musí ukončiť slučku Excel skôr, ako dokončí kvótu celej slučky 10. V tomto článku vám ukážeme, ako ukončiť slučku na základe daných kritérií.

Ako prerušiť / opustiť slučky vo VBA?
# 1 - Break For Next Loop
VBA For Next Loop sa používa na prepájanie buniek a vykonávanie špecifických úloh. Napríklad sa pozrite na nižšie uvedený kód VBA.
Kód:
Sub Exit_Loop () Dim K tak dlho, pre K = 1 až 10 buniek (K, 1). Hodnota = K Next K End Sub
Takto vložíte sériové čísla z bunky A1 do A10.

To je u For Next Loop zrejmé.
Teraz chcem prerušiť slučku, keď sa v prvých 10 bunkách nájde akákoľvek hodnota. Za týmto účelom som do bunky A8 zadal textovú hodnotu.

Teraz to chcem v kóde poučiť a povedať: „Ak má slučková bunka určitú hodnotu, musí zo slučky vystúpiť pred vopred stanoveným limitom.“
Kód:
Sub Exit_Loop () Dim K tak dlho, pre K = 1 až 10, ak bunky (K, 1). Hodnota = "" Potom bunky (K, 1). Hodnota = K Elit Exit pre koniec, ak ďalšie K End Sub
Pozrite sa na tento riadok kódu:
If Cells (K, 1) .Value = “” Then
Cells (K, 1) .Value = K
Else
Exit For
End If
Píše sa v ňom If Cells (K, 1). Hodnota = „bunka opakovania sa rovná ničomu pokračujte v cykle vkladania sériových čísel od 1 do 10.
Posledná časť slučky hovorí:
Inak
Skončiť pre
Ak vyššie uvedená podmienka nie je TRUE, potom slučka „Exit For“.
Teraz spustite kód. Bude vkladať sériové čísla až do bunky A7.

Vyššie uvedený kód okamžite vystúpil zo slučky bez toho, aby niečo povedal; ako vieme, že vystúpil zo slučky.
Aby sme túto nejednoznačnosť odstránili, musíme dolu umiestniť jednu jednoduchú schránku správ VBA.
Kód:
Sub Exit_Loop () Dim K tak dlho, pre K = 1 až 10, ak bunky (K, 1) .Value = "" Potom bunky (K, 1) .Value = K Else MsgBox "V bunke sme dostali neprázdnu bunku & Bunky (K, 1). Adresa & vbNewLine & „Opúšťame slučku“ Exit For End Ak Ďalej K End Sub
Ak sa pri prechádzaní bunkou nájde nejaká neprázdna bunka, zobrazí sa správa: „V bunke A8 sme dostali neprázdnu bunku. Opúšťame slučku. “

Toto bude informovať používateľa o ukončení slučky aj s adresou bunky. Ak je nejaká hodnota zadaná omylom, môžeme skontrolovať adresu bunky vrátenú v okne správy.
# 2 - Break Do Until Loop
Podobne, ako sme vystúpili z For Next Loop, podobne môžeme opustiť aj slučku „Do Kým“. Napríklad si pozrite nasledujúci kód.
Kód:
Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Robiť, kým K = 11 buniek (K, 1). Hodnota = KK = K + 1 End End Sub
Tento kód tiež vykonáva úlohu vkladania sériových čísel. Napríklad, ak chceme opustiť slučku, keď je hodnota premennej „k“ 6, musíme zadať kritériá ako IF k = 6 a potom opustiť slučku.
Kód:
Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Robiť K = 11 If K <6 Then Cells (K, 1). Value = K Elit Exit Do End if K = K + 1 Loop End Sub
Toto bude prebiehať v slučke, kým sa hodnota premennej nestane 6. Potom smyčku opustí. Ak chcete správu zobraziť používateľovi, môžete tiež pridať okno so správou.
Kód:
Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Do K = 11 Ak K 5 "Exit Do End Ak K = K + 1 Loop End Sub
Zobrazí sa správa uvedená nižšie.

Takto môžeme na základe daných kritérií opustiť slučku, ak sú kritériá TRUE, alebo môžeme v slučke pokračovať.