VBA galite užprogramuoti savo kodą išeiti iš „Sub“, kai atsiranda klaida. Norėdami tai padaryti, naudokite Dėl klaidos „GoTo“ ir Išeiti iš Sub.
Apie klaidą „Goto“ praneša VBA, kad kai įvyksta klaida „Eiti į“ konkrečioje jūsų kodo skiltyje. Pvz .:
1 | Dėl klaidos „GoTo ErrorHandler“ |
Tame skyriuje galite liepti VBA išeiti iš Sub, kad išeitumėte iš antrinės procedūros:
12 | ErrorHandler:Išeiti iš Sub |
Skaitykite toliau, kad pamatytumėte šias kodo eilutes veikiančias …
Išeikite iš subrangos dėl klaidos VBA
Šiame pavyzdyje mes sukursime klaidą, padalydami iš nulio:
1 | i = 5 /0 |
Žiūrėkite visą kodą žemiau. Kai VBA skaito klaidą, ji „pateks“ į kodo „ErrorHandler“ skyrių ir išeis:
123456789101112131415 | Antroji bandymo klaida ()Dim i As IntegerDėl klaidos „GoTo ErrorHandler“i = 5 /0„Daryk ką nors su I.„MsgBox“ iIšeiti iš SubErrorHandler:„MsgBox“ „Jei klaida, tada išeikite iš antrinės dalies“Išeiti iš SubPabaiga Sub |
Norėdami nurodyti klaidų tvarkymą, pirmiausia turite deklaruoti Dėl klaidos „GoTo“ pareiškimas. Tai turėtų būti nurodyta poskyrio pradžioje:
1 | Dėl klaidos „GoTo ErrorHandler“ |
Po to turite deklaruoti klaidų tvarkymo kodą. Paprastai tai yra kodo pabaigoje:
123 | ErrorHandler:„MsgBox“ „Jei klaida, tada išeikite iš antrinės dalies“Išeiti iš Sub |
Pridedame „Exit Sub“ virš „ErrorHandler“, nes norime paleisti „ErrorHandler“ kodą tik tuo atveju, jei yra klaida.
12345 | Išeiti iš SubErrorHandler:MsgBox "Jei klaida, tada išeikite iš antrinio"Išeiti iš SubPabaiga Sub |
Jei paleisite „Sub“, bus padaryta klaida dėl padalijimo iš nulio. Tuo metu bus įvykdytas klaidų tvarkymo kodas. Pasirodo pranešimų langas ir išjungiamas papildomas elementas.
1 pav. VBA įjungus klaidą Išeiti iš antr
Jei norite sužinoti, kaip nutraukti kodo vykdymą VBA, spustelėkite šią nuorodą: VBA pabaiga
Jei norite sužinoti, kaip išeiti iš papildomos funkcijos ar funkcijos, spustelėkite šią nuorodą: VBA Išeiti iš antrinės dalies ar funkcijos