Håndter fejl i VBA

Håndter fejl i VBA

Med fejlhåndtering kan du i VBA erstatte en fejlmeddelse der afbryder programmet, med din egen fejlmeddelelse eller en ny handling.
Error handlers er en god ide, når du programmerer. De giver mulighed for at få en brugerdefineret fejlbesked, som brugeren bedre kan forstå, så problemet bliver løst. Det giver også mulighed for at kunne køre en alternativ kode, hvis der opstår en fejl. En alternativ kode, der måske løser fejlen.
Hvis du får en fejlbesked fra VBA i Excel, kan du lægge mærke til fejlnummeret der oplyses. Dette fortæller dels dig hvilken fejl der er tale om, men gør det også muligt at give en forskellig besked afhængig af hvad fejlen er.
For at håndtere en fejl, indsætter du bare følgende linje, inden den kode hvor fejlen sker er.

On Error GoTo ErrHandler:

Herefter indsætter du følgende kode i bunden af den sub.

ErrHandler:
If Err.Number <> 0 Then
 MsgBox "An error happened"
 End If

Dette viser altså en besked, hvis der opstår en fejl. Du kan også angive et nummer for en specifik fejl.

ErrHandler:
If Err.Number = x Then
 MsgBox "An error x happened"
 End If

Her sætter du så bare fejlnummeret ind i stedet for x. Normalt fortsætter koden så bare med koden efter den linje hvor fejlen er sket. Det er ikke altid hensigtsmæssig, men så kan du definere et nyt afsnit i samme Sub, hvor koden skal fortsætte, ved at sætte følgende i linjen foran koden:

Exit_Random:

Og så kan du under ErrHandler: tilføje:

Resume Exit_Random

Der findes mange andre muligheder for at håndtere fejl, og jeg vil løbende udvide denne artikel med flere muligheder. Skriv også endelig en kommentar hvis du er i tvivl om noget.

Andreas Andersen

Forfatter og grundlægger af IT-blogger.dk, der har blogget om IT-emner siden 2012

Skriv et svar

%d bloggers like this: