V VBA lahko svojo kodo programirate za izhod iz podmestra, kadar pride do napake. Če želite to narediti, uporabite Napaka GoTo in Zapri pod.
Pri napaki Goto pove VBA, da v primeru napake "Pojdi na" določen del kode. Npr:
1 | Na napako Pojdi na ErrorHandler |
V tem razdelku lahko nato poveste VBA, naj zapusti Sub, da zapusti podproceduro:
12 | ErrorHandler:Zapri pod |
Preberite, če si želite ogledati te vrstice kode v akciji …
Zaprite napako Sub on v VBA
V tem primeru bomo z deljenjem z ničlo ustvarili napako:
1 | i = 5/0 |
Spodaj si oglejte celotno kodo. Ko VBA prebere napako, bo »odšel« v razdelek kode ErrorHandler in izstopil:
123456789101112131415 | Sub TestError ()Dim i kot celo številoNa napako Pojdi na ErrorHandleri = 5/0'Naredi nekaj z iMsgBox iZapri podErrorHandler:MsgBox "Če pride do napake, potem zapustite podrejeno"Zapri podEnd Sub |
Če želite določiti obravnavo napak, se morate najprej prijaviti Napaka GoTo izjavo. Na začetku podpodročja je treba navesti:
1 | Na napako Pojdi na ErrorHandler |
Po tem morate prijaviti kodo za obravnavo napak. Običajno je na koncu kode:
123 | ErrorHandler:MsgBox "Če pride do napake, potem zapustite podrejeno"Zapri pod |
Nad "ErrorHandler" dodamo "Exit Sub", ker želimo zagnati kodo ErrorHandler le, če pride do napake.
12345 | Zapri podErrorHandler:MsgBox "Če pride do napake, potem zapustite podrejeno"Zapri podEnd Sub |
Če zaženete Sub, bo prišlo do napake zaradi deljenja z ničlo. V tem trenutku bo izvedena koda za odpravljanje napak. Pojavi se okno s sporočilom in Sub je zaprt.
Slika 1. VBA On Error Exit Sub
Če želite izvedeti, kako končati izvajanje kode v VBA, kliknite to povezavo: VBA End
Če želite izvedeti, kako zapustiti pod -funkcijo ali funkcijo, kliknite to povezavo: VBA Izhod iz pod -funkcije ali funkcije