VBA ved fejl GoTo - Typer af fejlmeddelelser i VBA

Indholdsfortegnelse

Excel VBA ved fejl GoTo

Fejl er en del af ethvert kodningssprog, og VBA-makroer adskiller sig ikke fra dette. Efter min mening er 90% af det udførte job at finde ud af, hvorfor fejlen opstår, og 10% ligger i, hvordan man løser denne fejl. På hvert kodningssprog bruger kodere deres egen måde at håndtere fejl på i deres kodning, så bruger vi også i VBA-kodning. Ofte er vi nødt til at ignorere fejlen, eller ofte vil vi måske gå til bestemte ting, når fejlen opstår. "On Error" er den erklæring, vi skal bruge i VBA til at håndtere fejl.

Denne erklæring har tre typer udsagn, og nedenunder er listen.

  1. Ved fejl Gå til 0
  2. On Error Goto (label)
  3. Ved fejl Genoptag næste

I denne artikel vil vi se, hvordan disse tre udsagn bruges i VBA-kodning til at håndtere enhver form for fejl.

Hvordan bruges VBA på fejlmeddelelser?

# 1 - Ved fejl Genoptag næste

Som erklæringen selv siger, betyder "On Error Resume Next", når fejlen opstår i koden "genoptag" næste linje i koden ved at ignorere fejllinjekoden. Se nu på nedenstående kode.

I nedenstående kode har jeg nævnt regnearknavne og bedt om at indtaste værdien i den første celle som "Fejltest."

Kode:

Under On_Error_Resume_Next () regneark ("Ws 1"). Vælg rækkevidde ("A1"). Værdi = "Fejltest" regneark ("Ws 2"). Vælg rækkevidde ("A1"). Værdi = "Fejltest" regneark ( "Ws 3"). Vælg rækkevidde ("A1"). Værdi = "Fejltest" regneark ("Ws 4"). Vælg rækkevidde ("A1"). Værdi = "Fejltest" End Sub

Nu har jeg nedenstående regneark i min projektmappe.

  • Jeg kører koden og ser hvad der sker.
  • Vi fik fejlen "Subscript Out of Range", klik på "Debug" for at se i hvilken linje vi fik fejlen.
  • Så i linjen "Arbejdsark (" Ws 3 "). Vælg," fik vi en fejl. Dette skyldes, at der i vores projektmappe ikke er noget regneark med navnet "Ws 3", så der opstod en fejl.

I sådanne tilfælde vil vi måske ignorere fejlen og genoptage udførelsen af ​​koden til næste linje. Det er her, vores "On Error Resume Next" -fejlhåndterer kommer ind i billedet.

  • Alt, hvad vi skal gøre er at tilføje linjen "On Error Resume Next" i starten af ​​makroen.

Udfør nu denne kode, og den viser ikke nogen fejlmeddelelse, for når kode støder på en fejl, vil den ignorere fejlen og genoptage til næste linje kode.

# 2 - Til fejl GoTo 0

Dette er ikke en fejlhåndterer, men en fejlmeddelelsesaktivator, efter at vi har deaktiveret fejlmeddelelsen ved hjælp af "On Error Resume Next" -erklæringen.

Én du bruger “Genoptag næste” udsagn, VBA-makroer begynder at ignorere enhver form for fejl, der opstår, og fortsætter med den næste linje med koder. Men vi ønsker ikke, at dette skal ske hele tiden, fordi nogle fejl skal vi ignorere med vilje, andre har vi brug for en anmeldelse.

Hvis et bestemt sæt kode kaster en fejl i den kodeblok, skal vi kun ignorere fejl i andre dele af koden. Vi ønsker ikke at ignorere fejlen.

  • Se nedenstående billede for brugen af ​​"On Error GoTo 0" -erklæringen.

Så nu ignoreres fejl, indtil koden finder fejlen, underretter enablereren "On Error GoTo 0", når denne kodelinje udfører makroer tilbage til normal og begynder at kaste fejlmeddelelser som normalt.

# 3 - Ved fejl GoTo-etiket

Vi har set, hvordan man ignorerer fejlen, og hvordan man aktiverer fejlmeddelelsen igen. Nu ved hjælp af denne metode kan vi gå til en bestemt linje med kode.

In this method, “Label” means we can give any name to this label, and the same label should be given at the required line of code as well.

For example, look at the same code from the above example.

Now let’s execute the code line by line by pressing the F8 function key.

Now macro will read the error handler statement; press the F8 key execute the first 2 worksheet code.

Now macro is about to execute the third worksheet code, which is not there in the workbook, press the F8 key, and see what happens.

Because macro encountered an error in the below line of code, it has jumped to the error handler label “ErrorMessage,” which was described through the “On Error GoTo (Label)” statement.

Now the message box will show the message as “Error Occurred & Exiting the Macro.”

Things to Remember

  • Vba On Error GoTo 0 aktiverer fejlmeddelelsen igen, så glem ikke at tilføje dette efter levering af en fejlhåndtering.
  • Du skal være helt sikker på, i hvilken del af koden du vil ignorere fejlen, så ved kun fejlhåndtereren for den kode kode.

Interessante artikler...