VBA galite išeiti iš antrinės dalies ar funkcijos naudodami Išeiti iš Sub arba Išėjimo funkcija komandas.
1 | Išeiti iš Sub |
1 | Išėjimo funkcija |
Kai ateina kodo vykdymas Išeiti iš Sub arba Išėjimo funkcija, jis išeis iš poskyrio ar funkcijos ir toliau vykdys bet kokį kitą kodo vykdymą.
Jei norite sužinoti, kaip išeiti iš klaidos klavišo, spustelėkite šią nuorodą: VBA On Error Exit Sub
Jei norite sužinoti, kaip užbaigti viso kodo vykdymą, spustelėkite šią nuorodą: VBA pabaiga
Išeikite iš „Sub“ VBA
Pavyzdyje pamatysite, kas atsitinka, kai naudojame Išeiti iš Sub komandą „Sub“. Mes sukūrėme sub „ExitSub“, kuris turi Išeiti iš Sub komandą viduje. Sub„CallExitSub“ vadina tai Sub. Čia yra kodas:
123456789101112131415161718 | Privatus antrinis išėjimasSub ()Dim i As IntegerJei i = nuo 1 iki 10Jei i = 5, tadaIšeiti iš Sub„MsgBox“ „i reikšmė yra“ ir „i“Pabaiga JeiKitas I.Pabaiga SubPrivatus antrinis skambutisExitSub ()Skambinkite „ExitSub“„MsgBox“ „Exit Sub“Pabaiga Sub |
Viduje konors „ExitSub“, pirmiausia įvedame „For Loop“, jei i reikšmė yra mažesnė nei 10:
123 | Jei i = nuo 1 iki 10Kitas I. |
Po to mes patikriname, ar i reikšmė lygi 5, naudodami komandą If. Jei vertė yra 5, norime išeiti iš „Sub“ ir grąžinti pranešimo laukelį su i reikšme:
1234 | Jei i = 5, tadaIšeiti iš Sub„MsgBox“ „i reikšmė yra“ ir „i“Pabaiga Jei |
Jei sąlyga neįvykdyta, šis teiginys padidina i 1 ir vėl įveda į ciklą For:
1 | Kitas I. |
Viduje konors „CallExitSub“, pirmiausia vadiname Sub „ExitSub“:
1 | Skambinkite „ExitSub“ |
Po to grąžiname pranešimo laukelį:
1 | „MsgBox“ „Exit Sub“ |
Jei paleisite „CallExitSub“, pirmiausia jis paskambins „ExitSub“. Jei vykdysite šį kodą derinimo režimu, pamatysite, kad jis eis per ciklą 5 kartus. 5 -ametūkst iteraciją, kintamojo i reikšmė tampa 5 ir kodas įvedamas į If kūną. Dabar „Sub“ „ExitSub“ išeina ir grįžta į „CallExitSub“. Kita eilutė yra „MsgBox“ „Exit Sub“:
Kaip matote, „ExitSub“ išeina iš karto po to Išeiti iš Sub komanda, todėl „MsgBox“ „i reikšmė yra“ ir i niekada nebus įvykdyta.
Išeikite iš funkcijos VBA
Išėjimas iš funkcijos VBA yra panašus į išėjimą iš „Sub“, tik komanda Išėjimo funkcija. Pavyzdyje mes sukūrėme „ExitFunc“ kuris grąžina sveiką skaičių. Sub „CallExitFunction“ vadina šią funkciją. Čia yra kodas:
1234567891011121314151617181920 | Privati funkcija ExitFunc () kaip sveikasis skaičiusDim i As IntegerJei i = nuo 1 iki 10Jei i = 5, tada„ExitFunc“ = iIšėjimo funkcijaPabaiga JeiKitas I.Pabaigos funkcijaPrivatus antrinis skambutisExitFunction ()„Dim intFunc As Integer“intFunc = ExitFunction ()„MsgBox“ „IntFunc“ vertė yra „& intFunc“Pabaiga Sub |
Viduje konors „ExitFunc“, pirmiausia įvedame „For Loop“, jei i reikšmė yra mažesnė nei 10:
123 | Jei i = nuo 1 iki 10Kitas I. |
Po to mes patikriname, ar i reikšmė lygi 5, naudodami komandą If. Jei vertė yra 5, funkcijos rezultatui priskiriame i reikšmę ir išeiname iš funkcijos:
1234 | Jei i = 5, tada„ExitFunc“ = iIšėjimo funkcijaPabaiga Jei |
Jei sąlyga neįvykdyta, šis teiginys padidina i 1 ir vėl įveda į ciklą For:
1 | Kitas I. |
Viduje konors „CallExitFunction“, pirmiausia vadiname funkcija „ExitFunc“: Norėdami tai padaryti, turime deklaruoti kintamąjį intFunc įveskite sveikąjį skaičių ir priskirkite rezultatą „ExitFunc“ funkcija tam:
123 | „Dim intFunc As Integer“intFunc = ExitFunction () |
Po to grąžiname pranešimo laukelį su reikšme intFunc:
1 | „MsgBox“ „IntFunc“ vertė yra „& intFunc“ |
Jei paleisite „CallExitFunction“, pirmiausia iškvies funkciją „ExitFunc“. Jei vykdysite šį kodą derinimo režimu, pamatysite, kad jis eis per ciklą 5 kartus. 5 -ametūkst iteraciją, kintamojo i reikšmė tampa 5 ir kodas įvedamas į If kūną. Dabar vertė „ExitFunc“ tampa i, o funkcija išjungiama ir grąžinama į „CallExitFunction“. Kita eilutė yra „MsgBox“ „intFunc vertė yra“ ir „intFunc“: