VBA Break For Loop - Kako zapreti zanko v Excelu VBA?

Excel VBA Break For Loop

V VBA Break For Loop je znan tudi kot izhod za zanko, vsaka zanka v katerem koli postopku ima določen niz navodil ali kriterijev, da lahko teče časovno, vendar je zelo pogosto, da nekatera zanka pride v neskončno zanko in tako poškoduje kodo v takšnih scenarijih potrebujemo prekinitev ali izhod iz zanke, da pride iz določenih situacij.

Recimo, da smo zanko ukazali, naj se izvaja 10-krat, in na podlagi podanega pogoja mora, če je vrednost celice ali katero koli drugo priloženo merilo uspešno, zapustiti zanko excel, preden izpolni kvoto 10 celotne zanke. V tem članku vam bomo pokazali, kako zapustiti zanko na podlagi podanih meril.

Kako prekiniti / izstopiti zanke v VBA?

# 1 - Odmor za naslednjo zanko

VBA For Next Loop se uporablja za zanko po celicah in izvajanje določenega nabora nalog. Na primer, poglejte spodnjo kodo VBA.

Koda:

Sub Exit_Loop () Dim K tako dolgo za K = 1 do 10 celic (K, 1) .Vrednost = K Naslednji K Konec Sub

S tem boste vstavili serijske številke od celic A1 do A10.

To je očitno pri For Next Loop.

Zdaj želim prekiniti zanko, ko v prvih 10 celicah najdemo katero koli vrednost. Za to sem v celico A8 vnesel nekaj besedilne vrednosti.

Zdaj želim to poučiti v kodi, češ, "če ima zanka določena vrednost, mora zanko zapustiti pred vnaprej določeno mejo."

Koda:

Sub Exit_Loop () Dim K tako dolgo za K = 1 do 10 če celice (K, 1) .Value = "" Potem celice (K, 1) .Value = K Drugi izhod za konec, če je naslednji K End

Poglejte te vrstice kode:

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

Piše Če celice (K, 1). Vrednost = “zanka celice je enaka nič nadaljevati zanko vstavljanja serijskih številk od 1 do 10.

Zadnji del zanke pravi:

Drugače

Izhod za

Če zgornji pogoj ni TRUE, potem zanka »Exit For«.

Zdaj zaženite kodo. Do celice A7 bo vstavljal serijske številke.

Zgornja koda je takoj zapustila zanko, ne da bi nič rekla; kako vemo, da je zapustil zanko.

Da bi odpravili to dvoumnost, moramo spodaj postaviti eno preprosto sporočilo VBA.

Koda:

Sub Exit_Loop () Dim K Dolgo za K = 1 do 10 če celice (K, 1) .Value = "" Potem celice (K, 1) .Value = K Else MsgBox "V celici imamo neprazno celico" & Celice (K, 1). Naslov & vbNewLine & "Izhod iz zanke" Izhod za konec, če je naslednji K konec

Če najdete celico, ki ni prazna, se pri pregledu celice prikaže sporočilo: »V celici A8 imamo neprazno celico. Izstopamo iz zanke ”.

To bo uporabnika obvestilo o izstopu iz zanke tudi z naslovom celice. Če je katera koli vrednost vnesena pomotoma, lahko preverimo naslov celice, vrnjen v polje za sporočilo.

# 2 - Break Do Loop

Tako kot smo zapustili For Next Loop, lahko podobno zapustimo tudi zanko »Do Do«. Na primer, poglejte spodnjo kodo.

Koda:

Sub Exit_DoUntil_Loop () Dim K Dokler K = 1 Do K = 11 celic (K, 1) .Vrednost = KK = K + 1 Loop End Sub

Ta koda opravlja tudi nalogo vstavljanja serijskih številk. Če želimo na primer zapreti zanko, ko vrednost spremenljivke "k" postane 6, moramo vnesti merila kot IF k = 6 in nato zapustiti zanko.

Koda:

Sub Exit_DoUntil_Loop () Dim K Dokler K = 1 Do K = 11 Če je K <6 Potem celice (K, 1).

S tem se bo zanka izvajala, dokler vrednost spremenljivke ne postane 6. Po tem bo zanko zapustila. Če želite uporabniku prikazati sporočilo, lahko dodate tudi polje s sporočilom.

Koda:

Sub Exit_DoUntil_Loop () Dim K Dolgo K = 1 Do K = 11 Če K 5 "Izhod Do End End Če K = K + 1 Loop End Sub

To bo prikazalo spodnje sporočilo.

Tako lahko na podlagi podanih meril zapremo zanko, če so merila TRUE, ali pa lahko zanko nadaljujemo.

Zanimive Članki...