VBA Ignoreeri viga

Lang L: none (table-of-contents)

See õpetus näitab, kuidas tagada, et VBA eirab teie koodi käitamisel viga.

Mõnikord soovite VBA koodi konstrueerimisel tegelikult, et VBA ignoreeriks vea ilmnemisel koodirida. See võib tegelikult olla üsna kasulik, kui soovite näiteks lehe kustutada, kui see on olemas, kuid ignoreerige seda koodirida, kui lehte pole.

(VBA vigade kohta lisateabe saamiseks vaadake meie vigade käsitlemise juhendit)

Vea korral Jätka järgmist

Menetluses koodirea ignoreerimiseks kasutame Vea korral Jätka järgmist avaldus.

123456 Sub TestErrorIgnore ()Vea korral Jätka järgmistActiveWorkbook.Sheets ("Sheet4"). ValigeActiveSheet. Kustuta'rohkem koodi siinEnd Sub

Ülaltoodud näites on an Vea korral Jätka järgmist avaldus on asetatud menetluse tippu. Seejärel luuakse kood, et valida leht 4 ja seejärel see kustutada.

Kuid tänu Vea korral Jätka järgmist kui kood ei leia lehte4, liigub see lihtsalt järgmisele reale ja kustutab aktiivse lehe, mille ta leiab.

See võib olla üsna ohtlik, kui kustutada sooviksite ainult lehte 4 ja mitte ainult lehte. Selle vea vältimiseks saame määrata muutuja lehele 4 ja kustutada ainult selle lehe, kui see on olemas.

1234567 Sub TestErrorIgnore ()Dim ws töölehenaVea korral Jätka järgmistMäära ws = ActiveWorkbook.Sheets ("Sheet4")ws. Kustuta'rohkem koodi siinEnd Sub

Nüüd, kui kood käivitatakse, kustutatakse ainult leht 4 KUI Leht 4 on tegelikult olemas. Kui lehte 4 pole olemas, ignoreerib VBA viga ja jätkab.

Teine näide sellest on see, kui soovite silmuse abil töövihikust kõik lehed kustutada. Kuna Exceli töövihikus peab olema vähemalt üks leht, kustutab kood kõik lehed peale ühe.

123456 Sub DeleteSheets ()Dim ws töölehenaIga tööpäeva jaoks ActiveWorkbookis. Lehedws. KustutaJärgmine wsEnd Sub

Ülaltoodud kood peatub veaga.

Klõpsates Silumine viib meid koodi, kus on rikutud rida esile tõstetud!

Siiski, lisades Vea korral Jätka järgmist rida koodile hoiab ära vea ja rutiin jätab töövihikusse alati ühe lehe.

12345678 Sub DeleteSheets ()'lisage siia vearidaVea korral Jätka järgmistDim ws töölehenaIga tööpäeva jaoks ActiveWorkbookis. Lehedws. KustutaJärgmine wsEnd Sub

Viga GoTo 0

Sageli, kui kasutate Vea korral Jätka järgmist vea ignoreerimiseks soovite koodi hilisemasse lõksu jäämist või soovite, et teie kood lakkaks töötamast, kui viga ilmneb tulevikus. Me saame veakäsitluse uuesti seadistada nii, et kood rikub vead uuesti, lisades rea On Error GoTo 0.

12345678 Sub TestErrorIgnore ()Dim ws töölehenaVea korral Jätka järgmistMäära ws = ActiveWorkbook.Sheets ("Sheet4")ws. KustutaViga GoTo 0'rohkem koodi siinEnd Sub

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave