V VBA lahko pod ali funkcijo zapustite z uporabo Zapri pod ali Izhodna funkcija ukaze.
1 | Zapri pod |
1 | Izhodna funkcija |
Ko pride do izvedbe kode Zapri pod ali Izhodna funkcija, bo zapustil pod -funkcijo in nadaljeval s katero koli drugo izvedbo kode.
Če želite izvedeti, kako zapustiti podrejeno napako, kliknite to povezavo: VBA pri napaki zapusti podrejeno
Če želite izvedeti, kako končati izvajanje celotne kode, kliknite to povezavo: VBA End
Zapustite Sub v VBA
Na primeru boste videli, kaj se zgodi, ko uporabljamo Zapri pod ukaz v pod. Ustvarili smo Sub ExitSub, ki ima Zapri pod ukaz notri. PodmornicaCallExitSub kliče to pod. Tukaj je koda:
123456789101112131415161718 | Zasebni podizhod ExitSub ()Dim i kot celo številoZa i = 1 do 10Če je i = 5, potemZapri podMsgBox "Vrednost i je" & iKonec ČeNaprej iEnd SubZasebni podklicExitSub ()Pokličite ExitSubMsgBox "Izhod iz podnaprave"End Sub |
V ExitSub, najprej vnesemo For Loop, če je vrednost i manjša od 10:
123 | Za i = 1 do 10Naprej i |
Nato z ukazom If preverimo, ali je vrednost i enaka 5. Če je vrednost 5, želimo zapustiti podnaročnik in vrniti polje Sporočilo z vrednostjo i:
1234 | Če je i = 5, potemZapri podMsgBox "Vrednost i je" & iKonec Če |
Če pogoj ni izpolnjen, se naslednji stavek poveča za 1 in znova vstopi v zanko For:
1 | Naprej i |
V CallExitSub, najprej pokličemo Sub ExitSub:
1 | Pokličite ExitSub |
Po tem vrnemo polje Sporočilo:
1 | MsgBox "Izhod iz podnaprave" |
Če zaženete CallExitSub, bo najprej poklical ExitSub. Če to kodo izvedete v načinu za odpravljanje napak, boste videli, da bo šla petkrat skozi zanko. V 5th ponovitev, vrednost spremenljivke i postane 5 in koda vnese v telo If. Zdaj Sub ExitSub izstopi in se vrne v CallExitSub. Naslednja vrstica je Sporočilo »Izhod iz podnapisa«:
Kot lahko vidite, ExitSub izstopi takoj za tem Zapri pod ukaz, torej MsgBox »Vrednost i je« & i nikoli ne bo izveden.
Zapustite funkcijo v VBA
Izhod iz funkcije v VBA je podoben izhodu iz Sub -ja, samo ukaz je Izhodna funkcija. V tem primeru smo ustvarili datoteko IzhodFunc ki vrne celo število. Podmornica CallExitFunction kliče to funkcijo. Tukaj je koda:
1234567891011121314151617181920 | Zasebna funkcija ExitFunc () kot celo številoDim i kot celo številoZa i = 1 do 10Če je i = 5, potemIzhodFunc = iIzhodna funkcijaKonec ČeNaprej iKončana funkcijaZasebni podklicExitFunction ()Zatemni intFunc kot celo številointFunc = IzhodFunction ()MsgBox "Vrednost intFunc je" & intFuncEnd Sub |
V IzhodFunc, najprej vnesemo For Loop, če je vrednost i manjša od 10:
123 | Za i = 1 do 10Naprej i |
Nato z ukazom If preverimo, ali je vrednost i enaka 5. Če je vrednost 5, rezultatu funkcije dodelimo vrednost i in zapustimo funkcijo:
1234 | Če je i = 5, potemIzhodFunc = iIzhodna funkcijaKonec Če |
Če pogoj ni izpolnjen, se naslednji stavek poveča za 1 in znova vstopi v zanko For:
1 | Naprej i |
V CallExitFunction, najprej pokličemo funkcijo IzhodFunc: Če želite to narediti, moramo razglasiti spremenljivko intFunc vnesite celo število in dodelite rezultat IzhodFunc funkcija zanj:
123 | Zatemni intFunc kot celo številointFunc = IzhodFunction () |
Po tem vrnemo polje Sporočilo z vrednostjo intFunc:
1 | MsgBox "Vrednost intFunc je" & intFunc |
Če zaženete CallExitFunction, bo najprej poklical funkcijo IzhodFunc. Če to kodo izvedete v načinu za odpravljanje napak, boste videli, da bo šla petkrat skozi zanko. V 5th ponovitev, vrednost spremenljivke i postane 5 in koda vnese v telo If. Zdaj je vrednost IzhodFunc postane i in funkcija se zapre in vrne v CallExitFunction. Naslednja vrstica je MsgBox "Vrednost intFunc je" & intFunc: