VBA Hiba figyelmen kívül hagyása

Ez az oktatóanyag bemutatja, hogyan lehet biztosítani, hogy a VBA figyelmen kívül hagyjon egy hibát a kód futtatásakor.

Néha, amikor VBA -kódot készít, valójában azt szeretné, ha a VBA figyelmen kívül hagyna egy kódsort hiba esetén. Ez valójában nagyon hasznos lehet, ha például törölni szeretne egy lapot, ha létezik, de figyelmen kívül hagyja ezt a kód sort, ha a lap nem létezik.

(A VBA hibákkal kapcsolatos további információkért lásd a Hibakezelési útmutatót)

Hiba esetén Folytassa a következőt

Ha figyelmen kívül hagyjuk a kódsorokat egy eljárásban, a Hiba esetén Folytassa a következőt nyilatkozat.

123456 Sub TestErrorIgnore ()Hiba esetén Folytassa a következőtActiveWorkbook.Sheets ("Sheet4"). Válassza kiActiveSheet.Delete'további kód ittEnd Sub

A fenti példában egy Hiba esetén Folytassa a következőt nyilatkozatot az eljárás tetejére helyezték. A kód ezután a Sheet4 kiválasztásához, majd törléséhez jön létre.

Mivel azonban a Hiba esetén Folytassa a következőt utasítást, ha a kód nem találja a Sheet4 -et, akkor csak a következő sorra lép, és törli a talált aktív lapot.

Ez elég veszélyes lehet, ha csak a 4. lapot akarta törölni, és nem csak a lapot, amely aktív. A hiba megelőzése érdekében beállíthatunk egy változót a 4. lapra, és csak azt a lapot törölhetjük, ha létezik.

1234567 Sub TestErrorIgnore ()Dim ws munkalapkéntHiba esetén Folytassa a következőtÁllítsa be ws = ActiveWorkbook.Sheets ("Sheet4")ws.Delete'további kód ittEnd Sub

Most, amikor a kód futtatásra kerül, csak a 4 -es lap törlődik HA A 4. lap valójában létezik. Ha a 4. lap nem létezik, a VBA figyelmen kívül hagyja a hibát, és folytatja.

Egy másik példa erre, ha a munkafüzet összes lapját hurok segítségével szeretné törölni. Mivel az Excel munkafüzetnek legalább egy lappal kell rendelkeznie, a kód egy kivételével az összes lapot törli.

123456 Sub DeleteSheets ()Dim ws munkalapkéntMinden ws -hez az ActiveWorkbook.Sheets -benws.DeleteKövetkező wsEnd Sub

A fenti kód hiba esetén leáll.

Kattintás Hibakeresés bevisz minket a kódba, a sértő sort kiemelve!

Hozzátéve azonban a Hiba esetén Folytassa a következőt sor a kódhoz megakadályozza a hibát, és a rutin mindig egy lapot hagy a munkafüzetben.

12345678 Sub DeleteSheets ()'add ide a hibasortHiba esetén Folytassa a következőtDim ws munkalapkéntMinden ws -hez az ActiveWorkbook.Sheets -benws.DeleteKövetkező wsEnd Sub

GoTo 0 hiba esetén

Gyakran, ha használja Hiba esetén Folytassa a következőt Ha figyelmen kívül hagyja a hibát, a hiba későbbi lezárását szeretné a kódban, vagy azt szeretné, hogy a kód leálljon, ha a jövőben hiba lép fel. A hibakezelést úgy állíthatjuk be újra, hogy a kód ismét törni kezdjen a hibákon, ha hozzáadjuk az On Error GoTo 0 sort.

12345678 Sub TestErrorIgnore ()Dim ws munkalapkéntHiba esetén Folytassa a következőtÁllítsa be ws = ActiveWorkbook.Sheets ("Sheet4")ws.DeleteGoTo 0 hiba esetén'további kód ittEnd Sub

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave