VBA på feil

VBA On Error er en enkel metode for å håndtere uventede unntak i Excel Macros.Det er kjent at vi ikke kan skrive kode uten noen feil. Noen ganger kan det å skrive stor kode gi oss feilen også på tidspunktet for samlingen. For å unngå denne typen situasjoner legger vi til feilmelding, som i stedet for å gi oss riktig svar eller feilkode vil vise oss meldingen med feilkode. Det ser ut som om vi fikk utdata fra beregningen vår, men det er feilkoden som blir trykt.

Hvordan bruker jeg Excel VBA på feilmelding i Excel?

Det er 3 måter feil i VBA på. La oss forstå forskjellige måter med noen eksempler.

Eksempel 1

Den første feiltypen er kodekompilasjonsfeil som kommer når en kode er ikke-deklarerte eller umulige variabler. For å forstå mer vil vi bruke et enkelt matematisk uttrykk for skillet. For dette gå til Sett inn-menyen til VBA og velg Modul som vist nedenfor.

Nå åpner underkategorien og legg til et navn. Som vi bruker On Error så har vi navngitt den samme.

 Sub OnError () Slutt Sub 

Definer nå eventuelle 2 eller 3 heltall. Her har vi tatt X og Y som heltal.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall slutt sub 

Nå som diskutert ovenfor vil vi beregne divisjon matematisk uttrykk. For X vil vi sette et tegn i telleren og dele det 0. Og Y vil være 20/2 som er komplette tall.

 Sub OnError () Dim X Som heltall, Y Som heltall X = Test / 0 Y = 20/2 End Sub 

Kjør nå koden ved å bruke F5-tasten eller klikke på avspillingsknappen som vist nedenfor. Vi vil få kjøretidsfeil 6, som viser tekst over nummerfeil.

Nå for å overskrive denne feilen, vil vi legge til en linje på Feil Fortsett Neste før vi skriver den matematiske koden. Den vil hoppe feilkoden, men vi kan ikke se utfallet av den andre matematiske koden. Dette skjuler bare feilmeldingen hvis forskjellige kodelinjer som vist nedenfor. Nå prøver du å kjøre koden også.

 Sub OnError () Dim X Som heltall, Y som heltall på feil Fortsett Neste X = Test / 0 Y = 20/2 MsgBox X MsgBox Y End Sub 

Nå for å overskrive denne feilen, vil vi legge til en linje på Feil Fortsett Neste før vi skriver den matematiske koden. Den vil hoppe feilkoden, men vi kan ikke se utfallet av den andre matematiske koden. Dette skjuler bare feilmeldingen hvis forskjellige kodelinjer som vist nedenfor. Nå prøver du å kjøre koden også.

Eksempel 2

I dette eksemplet vil vi vurdere den matematiske inndelingen som gir uendelig resultat, men ved koding vil den # DIV / 0-resultatet. For å demonstrere dette vil vi vurdere ett heltall Z sammen med X og Y i underkategorien som vist nedenfor.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall slutt sub 

Nå rammer alle heltalene X, Y og Z med et matematisk uttrykk for skillelinje, og for å skrive ut det bruker du MsgBox-funksjon i VBA for hvert heltals resultat.

Nedenfor for Integer X har vi delt 10 med 0, 20 med 2 og 30 med 4.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Kjør nå koden ved å bruke F5-tasten eller manuelt som vist nedenfor.

Som vi kan se på skjermbildet ovenfor Run-time error 11, som betyr at feilen er relatert til nummeret. Nå for å overvinne dette, legg til en linje på Feil Fortsett Neste før matematisk uttrykk som vist nedenfor.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall på feil Fortsett Neste X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Hvis vi kjører koden, vil vi få null for første heltal X, og for Y og Z vil vi få respektive divisjonssvar som vist nedenfor.

Eksempel 3

Den andre typen feil blir sett når vi legger inn feil dataoppføring i kode. For dette vil vi vurdere tre heltall X, Y og Z ved å åpne underkategorien i VBA som vist nedenfor.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall slutt sub 

Vurder også den samme matematiske inndelingen som vi har sett i eksemplet ovenfor.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Hvis vi kjører koden, vil vi få den samme feilmeldingen om kjøretidsfeil 11.

Nå for å overskrive denne feilen, bruk tekst On Error GoTo med ordet ““ Resultat for å hoppe over feilmelding og få utdataene som fungerer fint som vist nedenfor.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall på feil GoTo ZResult: X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Nå kjører koden igjen. Vi vil få samme resultat som forrige eksempel.

Ved feil hjelper GoTo ZResult oss med å hoppe direkte av nevnt resultatpunkt heltall som vi gjorde for heltall Z.

Eksempel 4

I den tredje feiltypen når vi kjører koden, og VBA ikke kan forstå kodelinjen. Dette kan gjøres ved hjelp av kode On Error Resume Next Next sammen med MsgBox Err.Number . Vurder de samme dataene som brukes i eksemplene ovenfor. Vi vil igjen se de samme heltalene X, Y og Z som vist nedenfor.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall slutt sub 

Og for å skrive ut resultatutgangen, må du la meldingsbokser for alle heltall som utdata.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Nå, hvis vi kjører den komplette koden, vil vi få en feilmelding om matematisk feil. Kjøretidfeil 11.

Nå for å overskrive denne feilen vil vi bruke On Error Resume Next.

 Sub OnError () Dim X som heltall, Y som heltall, Z som heltall på feil Fortsett Neste X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Og kjør koden. Dette vil gi bruksresultat på gyldig matematisk linje som vist nedenfor.

Nå kan du legge til ZResult- kodelinje før Z-heltallets matematiske uttrykk og legge til MsgBox Err.Number- kodelinjen på slutten av koden som vist nedenfor.

 Sub OnError () Dim X Som heltall, Y som heltall, Z som heltall på feil Fortsett Neste X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Nummer End Sub 

Kjør nå koden ved å bruke F5-tasten eller ved å trykke på avspillingsknappen som vist nedenfor.

Som vi kan se på skjermbildene ovenfor. Første meldingsboks har 0 som overstyrer feil matematisk uttrykk. Andre og tredje har et divisjonsresultat av Y- og Z-tallene. Og den siste meldingsboksen har kjørt tid feilkode 11 som sannsynligvis er feilkoden for X heltalls divisjonsuttrykk.

Fordeler med VBA på en feil

  • Vi kan beregne hvilken som helst matematisk formel selv om den er feil.
  • For større kodingstrukturer der det er sjanser eller har en feil, kan bruk av disse metodene gi riktig resultat selv blant kodelinjen.
  • Dette gir bedre resultat sammenlignet med resultatet oppnådd fra normale Excel-beregninger.

Ting å huske

  • Lagre filen alltid i makroaktivert Excel-fil slik at vi kan bruke opprettet VBA-kode mange og flere ganger.
  • Sett alltid sammen den skriftlige koden før du implementerer den med noen excel-krav.
  • Hvis nødvendig, tilordne den skrevne koden til hvilken som helst knapp slik at vi raskt kan klikke på knappen og kjøre koden.

Du kan laste ned denne VBA på feil Excel-mal her - VBA på feil Excel-mal

Anbefalte artikler

Dette har vært en guide til Excel VBA On Error. Her diskuterte vi hvordan du bruker VBA On Error Statement sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler–

  1. Hvordan bruker jeg VBA TRIM-funksjon?
  2. Nummerformat i VBA
  3. Guide to Excel VBA Do While Loop
  4. Hvordan bruker jeg VBA Finn-funksjon?

Kategori: