VBA Negeer Fout

Deze zelfstudie laat zien hoe u ervoor kunt zorgen dat VBA een fout negeert bij het uitvoeren van uw code.

Soms, wanneer u VBA-code maakt, wilt u eigenlijk dat VBA een regel code negeert wanneer er een fout optreedt. Dit kan erg handig zijn als u bijvoorbeeld een blad wilt verwijderen als het bestaat, maar die regel code negeert als het blad niet bestaat.

(Zie onze Error Handling Guide voor meer informatie over VBA-fouten)

Bij fout Hervatten volgende

Om een ​​regel code in een procedure te negeren, gebruiken we de Bij fout Hervatten volgende uitspraak.

123456 Sub TestErrorIgnore()Bij fout Hervatten volgendeActiveWorkbook.Sheets("Blad4").selectActiveSheet.Verwijderen'meer code hier'Einde sub

In het bovenstaande voorbeeld is een Bij fout Hervatten volgende verklaring is bovenaan de procedure geplaatst. De code wordt vervolgens geconstrueerd om Sheet4 te selecteren en vervolgens te verwijderen.

Echter, door de Bij fout Hervatten volgende statement, als de code Blad4 niet vindt, gaat het gewoon door naar de volgende regel en verwijdert het het actieve blad dat het vindt.

Dit kan behoorlijk gevaarlijk zijn als u alleen Blad 4 wilt verwijderen en niet alleen het Blad dat actief is. Om deze fout te voorkomen, kunnen we een variabele instellen op blad 4 en alleen dat blad verwijderen ALS het bestaat.

1234567 Sub TestErrorIgnore()Dim ws als werkbladBij fout Hervatten volgendeStel ws = ActiveWorkbook.Sheets("Blad4") inws.Verwijderen'meer code hier'Einde sub

Wanneer de code nu wordt uitgevoerd, wordt alleen Sheet4 verwijderd INDIEN Blad4 bestaat echt. Als Blad 4 niet bestaat, negeert VBA de fout en gaat door.

Een ander voorbeeld hiervan is als u alle bladen uit uw werkmap wilt verwijderen met een lus. Omdat een Excel-werkmap ten minste één blad moet hebben, verwijdert de code alle bladen behalve één.

123456 Sub Verwijder Bladen()Dim ws als werkbladFor Each ws In ActiveWorkbook.Sheetsws.VerwijderenVolgende wsEinde sub

De bovenstaande code stopt met een fout.

Klikken op Debuggen neemt ons mee naar de code met de beledigende regel gemarkeerd!

Echter, het toevoegen van de Bij fout Hervatten volgende regel naar de code voorkomt de fout en de routine laat altijd één blad in de werkmap achter.

12345678 Sub Verwijder Bladen()'voeg hier een foutregel toe'Bij fout Hervatten volgendeDim ws als werkbladFor Each ws In ActiveWorkbook.Sheetsws.VerwijderenVolgende wsEinde sub

Bij fout Ga naar 0

Vaak als je gebruikt Bij fout Hervatten volgende om een ​​fout te negeren, wilt u later in de code fouten opsporen, of wilt u dat uw code stopt met uitvoeren als er in de toekomst een fout optreedt. We kunnen de foutafhandeling opnieuw instellen zodat de code opnieuw zal breken bij fouten door de regel On Error GoTo 0 toe te voegen.

12345678 Sub TestErrorIgnore()Dim ws als werkbladBij fout Hervatten volgendeStel ws = ActiveWorkbook.Sheets("Blad4") inws.VerwijderenBij fout Ga naar 0'meer code hier'Einde sub

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave