Chyba ignorovania VBA

Tento tutoriál ukáže, ako zabezpečiť, aby VBA pri spustení kódu ignoroval chybu.

Niekedy pri vytváraní kódu VBA skutočne chcete, aby VBA v prípade chyby ignoroval riadok kódu. To môže byť skutočne užitočné, ak napríklad chcete odstrániť hárok, ak existuje, ale tento riadok kódu ignorovať, ak hárok neexistuje.

(Ďalšie informácie o chybách VBA nájdete v našej príručke na spracovanie chýb)

Pri chybe Pokračovať ďalej

Na ignorovanie riadka kódu v procedúre používame Pri chybe Pokračovať ďalej vyhlásenie.

123456 Sub TestErrorIgnore ()Pri chybe Pokračovať ďalejActiveWorkbook.Sheets ("Sheet4"). VyberteActiveSheet.Delete'viac kódov tuKoniec pod

Vo vyššie uvedenom príklade je an Pri chybe Pokračovať ďalej vyhlásenie bolo umiestnené v hornej časti postupu. Kód je potom skonštruovaný tak, aby vybral List4 a potom ho odstránil.

Avšak kvôli Pri chybe Pokračovať ďalej Ak kód nenájde hárok 4, jednoducho prejde na nasledujúci riadok a odstráni aktívny hárok.

To môže byť celkom nebezpečné, ak ste chceli odstrániť iba hárok 4, a nie iba hárok, ktorý je aktívny. Aby sme tejto chybe zabránili, môžeme premennú nastaviť na hárok 4 a odstrániť iba ten hárok, AK existuje.

1234567 Sub TestErrorIgnore ()Dim ws As worksheetPri chybe Pokračovať ďalejNastaviť ws = ActiveWorkbook.Sheets ("Sheet4")ws.Smazať'viac kódov tuKoniec pod

Teraz, keď je kód spustený, bude odstránený iba Sheet4 AK List 4 skutočne existuje. Ak list 4 neexistuje, VBA bude chybu ignorovať a bude pokračovať.

Ďalším príkladom toho je, ak chcete zo zošita odstrániť všetky listy pomocou slučky. Keďže zošit programu Excel musí mať aspoň jeden hárok, kód odstráni všetky hárky okrem jedného.

123456 Vedľajšie mazacie listy ()Dim ws As worksheetZa každé ws v programe ActiveWorkbook. Tabuľkyws.SmazaťĎalšie wsKoniec pod

Vyššie uvedený kód sa zastaví s chybou.

Klikanie Ladiť nás zavedie do kódu so zvýrazneným problematickým riadkom!

Avšak pridaním Pri chybe Pokračovať ďalej riadok kódu zabráni chybe a rutina vždy nechá jeden list v zošite.

12345678 Vedľajšie mazacie listy ()'sem pridajte chybový riadokPri chybe Pokračovať ďalejDim ws As worksheetZa každé ws v programe ActiveWorkbook. Tabuľkyws.SmazaťĎalšie wsKoniec pod

Pri chybe GoTo 0

Často, ak používate Pri chybe Pokračovať ďalej Ak chcete chybu ignorovať, chcete, aby sa chyby v kóde zachytili neskôr v kóde alebo aby sa váš kód prestal zobrazovať, ak sa v budúcnosti vyskytne chyba. Spracovanie chýb môžeme znova nastaviť tak, aby sa kód pri chybách znova prerušil pridaním riadka Pri chybe GoTo 0.

12345678 Sub TestErrorIgnore ()Dim ws As worksheetPri chybe Pokračovať ďalejNastaviť ws = ActiveWorkbook.Sheets ("Sheet4")ws.SmazaťPri chybe GoTo 0'viac kódov tuKoniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave