Excel VBA Break for Loop
I VBA Break For Loop er også kendt som exit for loop, hver loop i enhver procedure har fået et sæt sæt instruktioner eller kriterier for, at det kører nuber af tid, men det er meget almindeligt, at nogle loop kommer ind i en uendelig løkke og derved ødelægger kode i sådanne scenarier har vi brug for pause for eller afslutning for loop for at komme ud af visse situationer.
Lad os sige, at vi har instrueret sløjfen til at køre i 10 gange, og hvis celleværdien eller andre leverede kriterier er vellykket, baseret på den givne betingelse, skal den afslutte excel-sløjfen, før den fuldfører den fulde sløjfekvote på 10. I denne artikel viser vi dig, hvordan du afslutter sløjfen baseret på de givne kriterier.

Sådan brydes / forlades løkker i VBA?
# 1 - Break for Next Loop
VBA For Next Loop bruges til at loop over celler og udføre et specifikt sæt opgaver. Se for eksempel på nedenstående VBA-kode.
Kode:
Sub Exit_Loop () Dim K så længe for K = 1 til 10 celler (K, 1). Værdi = K Næste K End Sub
Dette indsætter serienumre fra celle A1 til A10.

Dette er den åbenlyse ting med For Next Loop.
Nu vil jeg bryde sløjfen, når en værdi findes i de første 10 celler. Til dette har jeg indtastet en tekstværdi i cellen A8.

Nu vil jeg instruere dette i koden og sige, "hvis looping cellen har en bestemt værdi, er den nødt til at afslutte loop inden den forudbestemte grænse."
Kode:
Sub Exit_Loop () Dim K så længe for K = 1 til 10 hvis celler (K, 1) .Værdi = "" Derefter celler (K, 1) .Værdi = K Ellers afslut for slut, hvis næste K slut sub
Se disse linier med kode:
Hvis celler (K, 1) .Værdi = “” Derefter
celler (K, 1) .Værdi = K
Ellers
udgang til
afslutning, hvis
Der står If Cells (K, 1). Værdi = “looping celle er lig med ingenting, fortsæt loop med at indsætte serienumre fra 1 til 10.
Den sidste del af sløjfen siger:
Andet
Afslut til
Hvis ovenstående betingelse ikke er SAND, så “Exit For” -sløjfen.
Kør nu koden. Det indsætter serienumre indtil A7-cellen.

Ovenstående kode gik straks ud af sløjfen uden at sige noget; hvordan ved vi, at den er kommet ud af sløjfen.
For at fjerne denne tvetydighed er vi nødt til at sætte et enkelt VBA-meddelelsesfelt nedenfor.
Kode:
Sub Exit_Loop () Dim K så længe for K = 1 til 10 Hvis celler (K, 1) .Værdi = "" Så celler (K, 1) .Værdi = K Ellers MsgBox "Vi fik ikke tom celle i celle" & Celler (K, 1). Adresse & vbNewLine & "Vi forlader sløjfen" Afslut til slut, hvis næste K slut sub
Når der findes en sløjfe gennem cellen, hvis der findes en ikke-tom celle, vil den vise meddelelsen, der siger: ”Vi fik ikke-tom celle i celle A8. Vi går ud af sløjfen ”.

Dette vil også informere brugeren om sløjfens udgang med en celleadresse. Hvis en værdi indtastes ved en fejltagelse, kan vi kontrollere den celleadresse, der returneres i meddelelsesfeltet.
# 2 - Break Do indtil Loop
Ligesom hvordan vi har forladt For Next Loop, kan vi også forlade "Do indtil" -sløjfen. Se f.eks. Nedenstående kode.
Kode:
Sub Exit_DoUntil_Loop () Dim K så længe K = 1 Gør indtil K = 11 celler (K, 1). Værdi = KK = K + 1 Loop End Sub
Denne kode udfører også opgaven med at indsætte serienumre. For eksempel, hvis vi ønsker at afslutte sløjfen, når variablen “k” -værdien bliver 6, skal vi indtaste kriterierne som HVIS k = 6 og derefter afslutte sløjfen.
Kode:
Sub Exit_DoUntil_Loop () Dim K Så længe K = 1 Gør indtil K = 11 Hvis K <6 Derefter celler (K, 1). Værdi = K Else Exit Do End Hvis K = K + 1 Loop End Sub
Dette kører sløjfen, indtil den variable værdi bliver 6. Derefter forlader den sløjfen. Hvis du vil vise meddelelsen til brugeren, kan du også tilføje meddelelsesfeltet.
Kode:
Sub Exit_DoUntil_Loop () Dim K så længe K = 1 Do indtil K = 11 Hvis K 5 "Exit Do End hvis K = K + 1 Loop End Sub
Dette viser meddelelsen nedenfor.

På denne måde kan vi på baggrund af de givne kriterier forlade sløjfen, hvis kriterierne er SANDE, ellers kan vi fortsætte sløjfen.