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.