VBA-foutafhandeling - Gids voor foutafhandeling in Excel VBA

Excel VBA-foutafhandeling

In VBA wanneer we met codes werken, kunnen we veel verschillende soorten fouten tegenkomen en hoe deze fouten kunnen worden opgelost, staat bekend als foutafhandeling, nu kunnen er enkele fouten zijn gemaakt in de syntaxis die uitblinkt, maar wanneer er een fout is die buiten het bereik valt of iets dat niet bestaat. Excel geeft ons een pop-up voor hetzelfde, het is belangrijk om te weten welke foutcode voor welke fout is om de fout in de code te identificeren.

In Excel VBA krijgen we bij het uitvoeren van een reeks codes een soort fouten. Sommige van deze fouten zijn syntaxisfouten; sommige zijn fouten die niet uitvoerbaar zijn. De syntaxisfout is wanneer gemaakt door de gebruiker door Excel zelf in rode kleur wordt gemarkeerd. Maar als er een ander soort runtime-fout is, hoe gaan we ermee om en hoe komen we verder, dan bespreken we in dit artikel.

Afgezien van syntaxisfouten, moeten de andere runtime-fouten worden afgehandeld tijdens het uitvoeren van een reeks codes. Laat me eerst een voorbeeld geven van hoe de andere runtime-fout optreedt. Bekijk de onderstaande code,

Dit is een voorbeeldcode, wanneer uitgevoerd, zal retourneren wat is geschreven in de msgbox-functie. Maar zoals we kunnen zien, is er in de tweede regel van de code 4/0, wat niet mogelijk is in wiskundige termen, dus het zal een runtime-fout retourneren. Laten we de bovenstaande code uitvoeren en zien welke fout we zullen krijgen.

Dit is de fout die we krijgen tijdens het uitvoeren van de gegeven code. Hoe we deze fout nu aanpakken, wordt gemaakt door Error Handling.

Er zijn twee methoden om fouten af ​​te handelen:

  1. Bij fout Ga naar, en
  2. Bij fout Volgende hervatten.

Uitleg

Zoals hierboven uitgelegd, krijgen we veel soorten fouten in VBA. Sommige zijn syntaxis en sommige zijn runtime. Syntaxisfouten zijn al gemarkeerd in een rode kleur, zie bijvoorbeeld onder screenshot,

Terwijl de andere run-time fouten is. In principe zal Excel de volgende drie dingen doen, ofwel het zal een fout laten zien of die fout negeren, of het zal een bepaalde set instructies tonen. Om dergelijke taken uit te voeren, moeten we instructies geven, en dit wordt foutafhandeling genoemd.

Hoe om te gaan met fouten in VBA-code?

Voorbeeld 1

Laten we voor het eerste voorbeeld de eerste code nemen die we als demonstratie hebben gebruikt. In het bovenstaande voorbeeld hebben we gezien dat de code een runtime-fout geeft bij de tweede msgbox-functie.

Schrijf de volgende code na het openen van de subfunctie,

Code:

Sub Sample () Bij fout Hervatten Volgende MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Wanneer we nu de bovenstaande code uitvoeren, zien we dat de regel code met de fout niet wordt uitgevoerd. Excel slaat die regel over en gaat verder op de volgende regel.

Er is een andere methode om de fout af te handelen is VBA Goto Statement. We bieden Excel als bestemming om naar toe te gaan wanneer er een fout wordt gevonden. In plaats van de vorige foutafhandelingscode, hebben we de volgende code ingevoegd,

Code:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

We geven Excel Az als bestemming om naartoe te gaan als er een fout wordt gevonden. Schrijf nu na de msgbox een andere code zoals hieronder,

Code:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Klaar: Sub afsluiten

Nu moeten we de bestemming az definiëren als wat het moet doen als Excel een fout in de code vindt.

Code:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Klaar: Exit Sub az: MsgBox "Dit is een fout" & Err.Description End Sub

Wanneer we deze code nu uitvoeren, zien we het resultaat weergegeven.

Dit is het eerste msg box-resultaat en aangezien we weten dat we een fout hebben in de volgende regel van onze code, laten we eens kijken wat het resultaat is van Excel.

De foutbeschrijving hierboven in de code helpt ons om precies te laten zien wat de fout is opgetreden in onze code.

Voorbeeld 2

We hebben geleerd om met fouten in onze codes om te gaan. Laten we eens kijken naar een ander voorbeeld van het omgaan met fouten. Beschouw de volgende code als ons tweede voorbeeld.

We hebben een enigszins vergelijkbare fout in voorbeeld 1. De fout is in regel d = i / b. Nu zullen we deze fouten afhandelen door de twee hierboven beschreven methoden te gebruiken.

Schrijf de volgende code na het openen van de subfunctie,

Code:

Sub Sample2 () Bij fout Hervatten Volgende 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 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:

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 "Dit is weer een fout" & Err.Description End Sub

Als we de code nu uitvoeren, kunnen we zien dat Excel ons eerst de waarde voor C geeft.

Nu in een andere stap, zal het ons de prompt geven die we het hebben gegeven wanneer het een fout tegenkomt.

Dit is hoe we omgaan met de normale runtime-fouten in Excel VBA.

Dingen om te onthouden

Er zijn een paar dingen die we moeten onthouden over foutafhandeling:

  1. Bij Fout Volgende hervatten, Negeert de fout.
  2. Bij fout GoTo Geeft Excel een bestemming wanneer er een fout optreedt.
  3. De beschrijving wordt gebruikt om de exacte fout weer te geven die bij de gebruiker is opgetreden.

Interessante artikelen...