VBA feilhåndtering - Veiledning til feilhåndtering i Excel VBA

Innholdsfortegnelse

Excel VBA feilhåndtering

I VBA når vi jobber med koder, kan vi støte på mange forskjellige typer feil, og hvordan feilsøke disse feilene er kjent som feilhåndtering. Nå kan det være noen feil som blir gjort i syntaksen som utmerker seg, fremhever det, men når det er noen feil som er utenfor rekkevidden, eller noe som ikke eksisterer, utmerker oss, gir oss en popup for det samme. Det er viktig å vite hvilken feilkode som er for hvilken feil for å identifisere feilen i koden.

I Excel VBA får vi noen slags feil mens vi utfører et sett med koder. Noen av disse feilene er syntaksfeil; noen er feil som ikke kan kjøres. Syntaksfeilen er når den er laget av brukeren, uthevet i rød farge av excel selv. Men når det er noen annen type kjøretidsfeil, hvordan håndterer vi det, og hvordan vi kommer utover dette, er det vi vil dekke i denne artikkelen.

Bortsett fra syntaksfeil, må de andre kjøretidsfeilene håndteres mens du utfører et sett med koder. La meg først gi et eksempel på hvordan den andre kjøretidsfeilen oppstår. Ta en titt på koden nedenfor,

Dette er en eksempelkode, når den kjøres, vil returnere det som er skrevet i msgbox-funksjonen. Men som vi kan se at i den andre linjen i koden er det 4/0, noe som ikke er mulig i matematiske termer, så det vil returnere en kjøretidsfeil. La oss utføre ovennevnte kode og se feilen vi får.

Dette er feilen vi får når vi utfører den gitte koden. Nå hvordan vi håndterer denne feilen er laget av feilhåndtering.

Det er to metoder for å håndtere feil som er:

  1. On Error Goto, og
  2. Ved feil Gjenoppta neste.

Forklaring

Som forklart ovenfor får vi mange typer feil i VBA. Noen er syntaks, og andre er kjøretid. Syntaksfeil er allerede uthevet i rød farge, for eksempel, se skjermbildet nedenfor,

Mens den andre er kjøretidsfeil. I utgangspunktet vil excel gjøre følgende tre ting, enten vil det vise en feil eller ignorere den feilen, eller det vil vise et bestemt sett med instruksjoner. For å utføre slike oppgaver, må vi gi instruksjoner, og dette kalles feilhåndtering.

Hvordan håndtere feil i VBA-koden?

Eksempel 1

For det første eksemplet, la oss ta den første koden vi tok som demonstrasjon. I eksemplet ovenfor har vi sett at koden gir kjøretidsfeil ved den andre msgbox-funksjonen.

Skriv følgende kode etter at du har åpnet underfunksjonen,

Kode:

Underprøve () Ved feil Gjenoppta neste MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Nå når vi utfører koden ovenfor, ser vi at kodelinjen som har feilen ikke blir utført. Excel hopper over den linjen og fortsetter på neste linje.

Det er en annen metode for å håndtere feilen er VBA Goto Statement. Vi gir excel som et mål å gå til når det finner en feil. I stedet for den forrige feilhåndteringskoden, satte vi inn, skriv ned følgende kode,

Kode:

Deleksempel () ved feil GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Vi gir excel Az som et mål å gå til hvis det finner en feil. Nå etter msgbox, skriv en annen kode som nedenfor,

Kode:

Deleksempel () på feil GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Ferdig: Avslutt sub

Nå må vi definere destinasjonen az som hva den skal gjøre når excel finner en feil i koden.

Kode:

Underprøve () ved feil GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Ferdig: Avslutt Sub az: MsgBox "Dette er en feil" & Feil.

Nå når vi kjører denne koden, ser vi resultatet vises.

Dette er det første msg-boksresultatet, og som vi vet at vi har en feil i neste linje i koden vår, la oss se resultatet hva excel vil gi.

Err.-beskrivelsen ovenfor i koden hjelper oss med å vise nøyaktig hva feilen har oppstått i koden vår.

Eksempel 2

Vi har lært hvordan vi skal håndtere feil i kodene våre. La oss se på et annet eksempel på hvordan vi skal håndtere feil. Tenk på følgende kode som vårt andre eksempel.

Vi har en noe lignende feil fra eksempel 1. Feilen er i linje d = i / b. Nå skal vi håndtere disse feilene ved å bruke de to metodene som er forklart ovenfor.

Skriv følgende kode etter at du har åpnet underfunksjonen,

Kode:

Underprøve2 () Ved feil Fortsett neste bx Dim i som heltall, b som heltall, c som heltall, d som heltall i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub

Nå når vi utfører koden vår, kan vi se at den ignorerer den andre linjen og bare viser verdien for C.

Ovennevnte feilbehandler var et CV videre, og nå vil vi bruke Gå til der vi vil fortelle at vi utmerker et mål å gå når det støter på en feil. Skriv ned følgende kode,

Kode:

Deleksempel2 () på feil GoTo bx Dim i som heltal, b som heltall, c som heltall, d som heltall i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Bx er en destinasjon gitt når den støter på en feil etter msgbox D, skriv ned følgende kode,

Kode:

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 cd = i / b MsgBox d DOne: Exit Sub

Nå må vi definere destinasjonen Bx hva den skal gjøre når den støter på en feil, så skriv ned følgende kode,

Kode:

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 cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox "Dette er en annen feil" og feilbeskrivelse

Nå når vi utfører koden, kan vi se at excel først gir oss verdien for C.

Nå i et annet trinn, vil det gi oss ledeteksten vi ga det når det støter på en feil.

Slik håndterer vi de vanlige kjøretidsfeilene i Excel VBA.

Ting å huske

Det er noen få ting vi må huske på feilhåndtering:

  1. Ved feil fortsett neste, ignorerer feilen.
  2. Ved feil GoTo Gives utmerker seg en destinasjon når den støter på en feil.
  3. Beskrivelsen brukes til å vise den nøyaktige feilen som oppstod for brukeren.

Interessante artikler...