VBA Ohita virhe

Tämä opetusohjelma osoittaa, miten varmistetaan, että VBA jättää virheen huomiotta koodia suoritettaessa.

Joskus, kun rakennat VBA -koodia, haluat todella, että VBA ohittaa koodirivin virheen sattuessa. Tämä voi itse asiassa olla erittäin hyödyllistä, jos haluat esimerkiksi poistaa taulukon, jos sellainen on, mutta ohita se koodirivi, jos taulukkoa ei ole.

(Katso virheidenkäsittelyoppaastamme lisätietoja VBA -virheistä)

Virhe Jatka seuraavaksi

Ohitaksemme koodirivin menettelyssä käytämme Virhe Jatka seuraavaksi lausunto.

123456 AlatestiVirheIgnore ()Virhe Jatka seuraavaksiActiveWorkbook.Sheets ("Sheet4"). ValitseActiveSheet.Delete'lisää koodia täälläEnd Sub

Yllä olevassa esimerkissä an Virhe Jatka seuraavaksi lausunto on asetettu menettelyn kärkeen. Koodi muodostetaan sitten valitsemaan Sheet4 ja poistamaan se.

Kuitenkin johtuen Virhe Jatka seuraavaksi lauseke, jos koodi ei löydä taulukkoa4, se siirtyy vain seuraavalle riville ja poistaa sen löytämän aktiivisen taulukon.

Tämä voi olla varsin vaarallista, jos haluat poistaa vain arkin 4 eikä vain sen, joka on aktiivinen. Tämän virheen estämiseksi voimme asettaa muuttujan taulukkoon 4 ja poistaa vain sen taulukon, jos se on olemassa.

1234567 AlatestiVirheIgnore ()Dim ws laskentataulukkonaVirhe Jatka seuraavaksiAseta ws = ActiveWorkbook.Sheets ("Sheet4")ws.Delete'lisää koodia täälläEnd Sub

Nyt kun koodi ajetaan, vain Sheet4 poistetaan JOS Arkki 4 on todella olemassa. Jos taulukkoa 4 ei ole, VBA jättää virheen huomiotta ja jatkaa.

Toinen esimerkki tästä on, jos haluat poistaa kaikki taulukot työkirjasta silmukan avulla. Koska Excel -työkirjassa on oltava vähintään yksi arkki, koodi poistaa kaikki taulukot paitsi yhden.

123456 Sub DeleteSheets ()Dim ws laskentataulukkonaJokaista ws ActiveWorkbook.Sheetsws.DeleteSeuraava wsEnd Sub

Yllä oleva koodi lakkaa virheestä.

Napsauttamalla Virheenkorjaus vie meidät koodiin loukkaava rivi korostettuna!

Kuitenkin lisäämällä Virhe Jatka seuraavaksi rivi koodiin estää virheen ja rutiini jättää aina yhden arkin työkirjaan.

12345678 Sub DeleteSheets ()'lisää virherivi tähänVirhe Jatka seuraavaksiDim ws laskentataulukkonaJokaista ws ActiveWorkbook.Sheetsws.DeleteSeuraava wsEnd Sub

Virhe GoTo 0

Usein jos käytät Virhe Jatka seuraavaksi Jos haluat jättää virheen huomiotta, haluat virheen sieppaamisen myöhemmin koodissa tai haluat, että koodisi lakkaa toimimasta, jos virhe ilmenee myöhemmin. Voimme asettaa virheenkäsittelyn uudelleen niin, että koodi murtautuu jälleen virheisiin lisäämällä rivin On Error GoTo 0.

12345678 AlatestiVirheIgnore ()Dim ws laskentataulukkonaVirhe Jatka seuraavaksiAseta ws = ActiveWorkbook.Sheets ("Sheet4")ws.DeleteVirhe GoTo 0'lisää koodia täälläEnd Sub

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave