VBA paus silmuse jaoks | Kuidas Exceli VBA-s silmusest väljuda?

Exceli VBA paus silmuse jaoks

In VBA Break Loop on tuntud ka väljumise silmus iga silmus igal korras on antud som11e juhistega või kriteeriumid seda käivitada nuber aega, kuid see on väga tavaline, et mõned loop get lõppahelasse seega demoraliseeriv Sellistes stsenaariumides vajame koodi jaoks pausi või väljumist, et teatud olukordadest välja tulla.

Oletame, et oleme käskinud tsüklit käitada kümme korda ja vastavalt antud tingimusele, kui lahtri väärtus või mõni muu esitatud kriteerium on edukas, peab ta enne täieliku tsükli kvoodi 10 täitmist Exceli tsüklist väljuma. Selles artiklis , näitame teile, kuidas antud kriteeriumide põhjal tsüklist väljuda.

Kuidas VBA silmusid katkestada / väljuda?

Selle VBA Break For Loop Exceli malli saate alla laadida siit - VBA Break For Loop Exceli mall

# 1 - katkestus järgmise ringi jaoks

VBA For Next Loopi kasutatakse lahtrite vahel liikumiseks ja kindla ülesannete komplekti täitmiseks. Näite saamiseks vaadake allpool olevat VBA-koodi.

Kood:

 Sub Exit_Loop () Dim K nii pikk kui K = 1 kuni 10 lahtrit (K, 1). Väärtus = K Järgmine K End Sub 

See sisestab seerianumbrid lahtrist A1 kuni A10.

For Next Loopi puhul on see ilmne asi.

Nüüd tahan katkestada tsükli, kui mõni väärtus, mis on leitud esimesest 10 lahtrist, olen selle jaoks sisestanud lahtrisse A8 tekstiväärtuse.

Nüüd tahan seda juhendada koodis, öeldes: "Kui tsellulatsioonirakul on kindel väärtus, peab ta enne ettemääratud piiri silmusest väljuma".

Kood:

 Sub Exit_Loop () Dim K nii kaua kui K = 1 kuni 10, kui lahtrid (K, 1). Väärtus = "" Siis lahtrid (K, 1). Väärtus = K Muu väljumine lõpuks, kui järgmine K End Sub 

Vaadake järgmist koodirida:

Kui rakud (K, 1). Väärtus = "" Siis

Rakud (K, 1). Väärtus = K

Muidu

  Väljuge

Lõpeta, kui

Seal on öeldud, et kui lahtrid (K, 1). Väärtus = "" silmusrakk on võrdne mitte millegagi, jätkake järjekorranumbrite 1 kuni 10 sisestamise ringi.

Lingi viimane osa ütleb:

Muidu

  Väljuge

Kui ülaltoodud tingimus ei ole TÕSI, siis tuleb käsk „Exit For”.

Nüüd käivitage kood, mis sisestab seerianumbrid kuni lahtrini A7.

Ülaltoodud kood väljus silmusest kohe midagi ütlemata. Kuidas me teame, et see on tsüklist väljunud.

Selle ebaselguse kõrvaldamiseks peame panema ühe lihtsa VBA-sõnumikasti, nagu allpool.

Kood:

 Sub Exit_Loop () Dim K nii kaua kui K = 1 kuni 10, kui lahtrid (K, 1). Väärtus = "" Siis lahtrid (K, 1). Väärtus = K Muu MsgBox "Meil on lahtris tühi lahter" & Lahtrid (K, 1). Aadress & vbNewLine & "Me väljume tsüklist" Exit For End If Next K End Sub 

Kui leitakse mõni tühi lahter, siis kuvatakse lahtris A8 lahtris teade “Meil on tühi lahter. Me väljume silmusest ”.

See teavitab kasutajat ka lahtriaadressiga silmusest väljumisest. Kui mõni väärtus sisestati ekslikult, saame kontrollida sõnumikasti tagastatud lahtri aadressi.

# 2 - Break Tee kuni silmuse

Sarnaselt sellega, kuidas me oleme järgmisest ringist väljunud, võime samamoodi väljuda ka „Tee kuni” silmusest. Näiteks vaadake allolevat koodi.

Kood:

 Sub Exit_DoUntil_Loop () Dim K nii kaua, kui K = 1 tee kuni K = 11 lahtrit (K, 1). Väärtus = KK = K + 1 aasa lõpp Sub 

See kood täidab ka seerianumbrite sisestamise ülesannet. Näiteks kui soovime silmusest väljuda, kui muutuja „k” väärtus muutub 6-ks, peame sisestama kriteeriumid, kui IF k = 6, siis väljuge tsüklist.

Kood:

 Ava Exit_DoUntil_Loop () Hämarda K nii kaua, kui K = 1 tee kuni K = 11, kui K <6, siis lahtrid (K, 1). Väärtus = K muu väljumine lõpeta, kui K = K + 1 silmus lõpeb alam 

See käivitab tsüklit, kuni muutuja väärtus saab 6, pärast seda väljub see tsüklist. Kui soovite sõnumit kasutajale näidata, saate ka teate kasti lisada.

Kood:

 Sub Exit_DoUntil_Loop () Hämarda K nii kaua, kui K = 1 tee kuni K = 11, kui K 5 "Exit Do Lõpeta, kui K = K + 1 aasa lõpp Sub 

See näitab allolevat teadet.

Nii nagu antud kriteeriumide põhjal, võime tsüklist väljuda, kui kriteeriumid on TÕENE, vastasel juhul võime tsüklit jätkata.