Chyba ignorování VBA

Tento tutoriál předvede, jak zajistit, aby VBA při spuštění kódu ignoroval chybu.

Někdy při vytváření kódu VBA ve skutečnosti chcete, aby VBA ignoroval řádek kódu, když dojde k chybě. To může být ve skutečnosti velmi užitečné, pokud například chcete odstranit list, pokud existuje, ale ignorovat tento řádek kódu, pokud list neexistuje.

(Další informace o chybách VBA najdete v naší příručce pro zpracování chyb)

Při chybě Pokračovat Další

K ignorování řádku kódu v proceduře používáme Při chybě Pokračovat Další tvrzení.

123456 Dílčí testErrorIgnore ()Při chybě Pokračovat DalšíActiveWorkbook.Sheets („Sheet4“). VyberteActiveSheet.Delete'více kódu zdeEnd Sub

Ve výše uvedeném příkladu je Při chybě Pokračovat Další prohlášení bylo umístěno na začátek procedury. Kód je potom vytvořen tak, aby vybral List4 a poté jej odstranil.

Nicméně kvůli Při chybě Pokračovat Další prohlášení, pokud kód nenajde list4, bude pokračovat na další řádek a odstraní jakýkoli aktivní list.

To může být docela nebezpečné, pokud jste chtěli odstranit pouze list 4, a ne pouze list, který je aktivní. Abychom této chybě předešli, můžeme nastavit proměnnou na list 4 a odstranit pouze ten list, POKUD existuje.

1234567 Dílčí testErrorIgnore ()Dim ws As WorksheetPři chybě Pokračovat DalšíNastavit ws = ActiveWorkbook.Sheets ("Sheet4")ws.Smazat'více kódu zdeEnd Sub

Nyní, když je kód spuštěn, bude odstraněn pouze Sheet4 LI List 4 skutečně existuje. Pokud list 4 neexistuje, VBA bude chybu ignorovat a bude pokračovat.

Dalším příkladem toho je, pokud chcete odstranit všechny listy ze sešitu pomocí smyčky. Protože sešit aplikace Excel musí mít alespoň jeden list, kód odstraní všechny listy kromě jednoho.

123456 Dílčí mazací listy ()Dim ws As WorksheetZa každé ws v ActiveWorkbook.Sheetsws.SmazatDalší wsEnd Sub

Výše uvedený kód se zastaví s chybou.

Klikání Ladit vezme nás do kódu se zvýrazněným problematickým řádkem!

Nicméně přidání Při chybě Pokračovat Další řádek do kódu zabrání chybě a rutina vždy nechá jeden list v sešitu.

12345678 Dílčí mazací listy ()'sem přidejte chybový řádekPři chybě Pokračovat DalšíDim ws As WorksheetZa každé ws v ActiveWorkbook.Sheetsws.SmazatDalší wsEnd Sub

Při chybě GoTo 0

Často, pokud používáte Při chybě Pokračovat Další Chcete -li chybu ignorovat, budete chtít v kódu později zachytit chyby, nebo chcete, aby se váš kód přestal spouštět, pokud se v budoucnu vyskytne chyba. Zpracování chyb můžeme znovu nastavit tak, aby se kód při chybách opět zlomil přidáním řádku Při chybě GoTo 0.

12345678 Dílčí testErrorIgnore ()Dim ws As WorksheetPři chybě Pokračovat DalšíNastavit ws = ActiveWorkbook.Sheets ("Sheet4")ws.SmazatPři chybě GoTo 0'více kódu zdeEnd Sub

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave