Vba: sub afsluiten bij een fout
U kunt de Exit Sub- instructie in VBA gebruiken om een subprocedure af te sluiten wanneer er een fout is opgetreden.
Hier is een gebruikelijke manier om deze verklaring in de praktijk te gebruiken:
Sub DivideValues()
Dim i As Integer
On Error GoTo ErrorMessage
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
Exit Sub
Error Message:
MsgBox “ An Error Occurred ”
Exit Sub
End Sub
Deze specifieke macro probeert elke waarde in het bereik A1:A10 te delen door de overeenkomstige waarde in het bereik B1:B10 .
Als er een fout optreedt (we proberen bijvoorbeeld te delen door nul), vertelt de On Error GoTo- instructie VBA om toegang te krijgen tot ErrorMessage , wat aangeeft dat er een berichtvenster moet worden gemaakt waarin de gebruiker wordt verteld dat er een fout is opgetreden en dat de subprocedure moet worden beëindigd met behulp van Exist Sub . stelling.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: hoe u een sub kunt maken in geval van een fout in VBA
Stel dat we de volgende lijst met waarden hebben in de kolommen A en B:
Stel nu dat we de volgende macro maken om elke waarde in kolom A te delen door de overeenkomstige waarde in kolom B en de resultaten in kolom C weer te geven:
Sub DivideValues()
Dim i As Integer
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende foutmelding:
We ontvangen deze foutmelding omdat we in de vierde rij van het Excel-werkblad probeerden te delen door nul.
Als we eenvoudigweg de subprocedure willen afsluiten wanneer deze fout optreedt, kunnen we de Exit Sub- instructie als volgt gebruiken:
Sub DivideValues()
Dim i As Integer
On Error GoTo ErrorMessage
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
Exit Sub
Error Message:
MsgBox “ An Error Occurred ”
Exit Sub
End Sub
Wanneer we deze macro uitvoeren, voert de subprocedure alle mogelijke verdelingsproblemen uit voordat er een fout optreedt. Vervolgens verschijnt er een berichtvenster dat ons vertelt dat er een fout is opgetreden en dat VBA eenvoudigweg bestaat in de subprocedure:
Let op : U kunt hier de volledige documentatie van de Exit -instructie in VBA vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
Mappen maken met VBA
Hoe mappen te verwijderen met VBA
Hoe bestanden te verwijderen met VBA