I VBA kan du programmere din kode til Exit a Sub, når der opstår en fejl. For at gøre dette skal du bruge Ved fejl GoTo og Afslut Sub.
On Error fortæller Goto til VBA, at når der opstår en fejl med "Gå til", vil et bestemt afsnit af din kode. Eks:
1 | Ved fejl GoTo ErrorHandler |
Inden for denne sektion kan du derefter bede VBA om at afslutte Sub for at afslutte underproceduren:
12 | ErrorHandler:Afslut Sub |
Læs videre for at se disse kodelinjer i aktion …
Afslut en Sub on Error i VBA
I dette eksempel genererer vi en fejl ved at dividere med nul:
1 | i = 5/0 |
Se hele koden herunder. Når VBA læser fejlen, vil den "gå" til ErrorHandler -sektionen af kode og afslutte:
123456789101112131415 | Sub TestError ()Dim i As IntegerVed fejl GoTo ErrorHandleri = 5/0'Gør noget med iMsgBox iAfslut SubErrorHandler:MsgBox "Hvis der er fejl, skal du afslutte Sub"Afslut SubAfslut Sub |
For at angive fejlhåndtering skal du først erklære Ved fejl GoTo udmelding. Det skal erklæres i begyndelsen af en under:
1 | Ved fejl GoTo ErrorHandler |
Derefter skal du erklære fejlhåndteringskoden. Det er normalt i slutningen af koden:
123 | ErrorHandler:MsgBox "Hvis der er fejl, skal du afslutte Sub"Afslut Sub |
Vi tilføjer "Exit Sub" over ErrorHandler, fordi vi kun vil køre ErrorHandler -koden, hvis der er en fejl.
12345 | Afslut SubErrorHandler:MsgBox "Hvis der er fejl, skal du afslutte Sub"Afslut SubAfslut Sub |
Hvis du kører Sub, kommer det til en fejl på grund af division med nul. I det øjeblik vil fejlhåndteringskoden blive eksekveret. Meddelelsesfeltet vises, og Sub er lukket.
Billede 1. VBA On Error Exit Sub
Hvis du vil lære at afslutte kodeudførelse i VBA, skal du klikke på dette link: VBA End
Hvis du vil lære at afslutte en sub eller funktion, skal du klikke på dette link: VBA Exit Sub eller Function