VBA-fejlhåndtering - Vejledning til fejlhåndtering i Excel VBA

Indholdsfortegnelse

Excel VBA-fejlhåndtering

I VBA, når vi arbejder med koder, kan vi støde på mange forskellige typer fejl, og hvordan man fejler disse fejl kaldes Fejlhåndtering, nu kan der være nogle fejl, der er lavet i syntaksen, som udmærker sig selv fremhæver det, men når der er en eller anden fejl som er uden for området eller noget der ikke eksisterer excel giver os en pop op for det samme, det er vigtigt at vide, hvilken fejlkode der er til hvilken fejl for at identificere fejlen i koden.

I Excel VBA får vi en slags fejl under udførelse af ethvert sæt koder. Nogle af disse fejl er syntaksfejl; nogle er fejl, der ikke kan udføres. Syntaksfejlen er, når brugeren foretager den, fremhævet i rød farve af excel selv. Men når der er nogen anden form for kørselstidsfejl, hvordan håndterer vi det, og hvordan vi kommer ud over dette, skal vi dække i denne artikel.

Bortset fra syntaksfejl skal de andre kørselsfejl håndteres under udførelse af ethvert sæt koder. Lad mig først give et eksempel på, hvordan den anden runtime-fejl opstår. Se på nedenstående kode,

Dette er en eksempelkode, når den udføres, returnerer det, der er skrevet i msgbox-funktionen. Men som vi kan se, at der i den anden linje i koden er 4/0, hvilket ikke er muligt i matematiske termer, så det vil returnere en kørselstidsfejl. Lad os udføre ovenstående kode og se den fejl, vi får.

Dette er den fejl, vi får under udførelsen af ​​den givne kode. Nu hvordan vi håndterer denne fejl er lavet af Fejlhåndtering.

Der er to metoder til håndtering af fejl, som er:

  1. On Error Goto, og
  2. Ved fejl Genoptag næste.

Forklaring

Som forklaret ovenfor får vi mange typer fejl i VBA. Nogle er syntaks, og nogle er løbetid. Syntaksfejl er allerede fremhævet i rød farve, se f.eks. Nedenstående skærmbillede,

Mens den anden er runtime-fejl. Grundlæggende vil excel gøre følgende tre ting, enten viser det en fejl eller ignorerer denne fejl, eller det viser et bestemt sæt instruktioner. For at udføre sådanne opgaver er vi nødt til at give instruktioner, og dette kaldes Fejlhåndtering.

Hvordan håndteres fejl i VBA-kode?

Eksempel nr. 1

Lad os for det første eksempel tage den første kode, vi tog som demonstration. I ovenstående eksempel har vi set, at koden giver kørselstidsfejl ved den anden msgbox-funktion.

Skriv følgende kode efter åbning af underfunktionen,

Kode:

Underprøve () Ved fejl Genoptag næste MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Afslut sub

Nu når vi udfører koden ovenfor, ser vi, at den kodelinje, der har fejlen, ikke udføres. Excel springer den linje over og genoptages på den næste linje.

Der er en anden metode til at håndtere fejlen er VBA Goto Statement. Vi giver excel som en destination at gå til, når den finder en fejl. I stedet for den forrige fejlhåndteringskode indsatte vi følgende kode,

Kode:

Underprøve () ved fejl GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Vi giver excel Az som en destination at gå til, hvis den finder en fejl. Nu efter msgbox, skriv en anden kode som nedenfor,

Kode:

Underprøve () ved fejl GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Udført: Afslut sub

Nu skal vi definere destinationen az som hvad den skal gøre, når excel finder en fejl i koden.

Kode:

Underprøve () ved fejl GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Udført: Afslut Sub az: MsgBox "Dette er en fejl" & Fejl.

Nu når vi kører denne kode, ser vi resultatet vises.

Dette er det første msg-boksresultat, og da vi ved, at vi har en fejl i den næste linje i vores kode, lad os se resultatet, hvad excel vil give.

Err.-beskrivelsen ovenfor i koden hjælper os med at vise nøjagtigt, hvad fejlen er opstået i vores kode.

Eksempel 2

Vi har lært at håndtere fejl i vores koder. Lad os se på et andet eksempel på, hvordan man håndterer fejl. Overvej følgende kode som vores andet eksempel.

Vi har en noget lignende fejl fra eksempel 1. Fejlen er i linje d = i / b. Nu håndterer vi disse fejl ved hjælp af de to metoder, der er forklaret ovenfor.

Skriv følgende kode efter åbning af underfunktionen,

Kode:

Underprøve2 () Ved fejl Genoptag næste bx Dim i som heltal, b som heltal, c som heltal, d som heltal i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub

Now when we execute our code, we can see that it ignores the second line and just displays the value for C.

The above error handler was a resume next, and now we will use the Go to wherein we will tell we excel a destination to go when it encounters an error. Write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d

The bx is a destination given when it encounters an error after msgbox D write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

Underprøve2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox "Dette er en anden fejl" & Fejlbeskrivelse

Nu når vi udfører koden, kan vi se, at excel først giver os værdien for C.

Nu i et andet trin vil det give os den prompt, vi leverede det, når det støder på en fejl.

Sådan håndterer vi de normale runtime-fejl i Excel VBA.

Ting at huske

Der er et par ting, vi skal huske om fejlhåndtering:

  1. Ved fejl genoptag næste, ignorerer fejlen.
  2. Ved fejl GoTo Gives udmærker sig en destination, når den støder på en fejl.
  3. Beskrivelsen bruges til at vise den nøjagtige fejl, der opstod for brugeren.

Interessante artikler...