Error de ignorar VBA

Este tutorial demostrará cómo asegurarse de que VBA ignore un error al ejecutar su código.

A veces, cuando construye código VBA, en realidad desea que VBA ignore una línea de código cuando se produce un error. En realidad, esto puede ser bastante útil si, por ejemplo, desea eliminar una hoja si existe, pero ignore esa línea de código si la hoja no existe.

(Consulte nuestra Guía de manejo de errores para obtener más información sobre los errores de VBA)

En caso de error, reanudar siguiente

Para ignorar una línea de código en un procedimiento, usamos el En caso de error, reanudar siguiente declaración.

123456 Sub TestErrorIgnore ()En caso de error, reanudar siguienteActiveWorkbook.Sheets ("Sheet4"). SeleccioneActiveSheet.Delete'más código aquíEnd Sub

En el ejemplo anterior, un En caso de error, reanudar siguiente La declaración se ha colocado en la parte superior del procedimiento. Luego, el código se construye para seleccionar Sheet4 y luego eliminarlo.

Sin embargo, debido a la En caso de error, reanudar siguiente declaración, si el código no encuentra Sheet4, simplemente continuará a la siguiente línea y eliminará la hoja activa que encuentre.

Esto puede ser bastante peligroso si solo desea eliminar la Hoja 4 y no solo la Hoja que está activa. Para evitar este error, podemos establecer una variable en la hoja 4 y eliminar solo esa hoja SI existe.

1234567 Sub TestErrorIgnore ()Dim ws como hoja de trabajoEn caso de error, reanudar siguienteEstablecer ws = ActiveWorkbook.Sheets ("Hoja4")ws.Delete'más código aquíEnd Sub

Ahora, cuando se ejecuta el código, solo se eliminará Sheet4 SI Sheet4 existe realmente. Si la Hoja 4 no existe, VBA ignorará el error y continuará.

Otro ejemplo de esto es si desea eliminar todas las hojas de su libro de trabajo mediante un bucle. Como un libro de Excel debe tener al menos una hoja, el código eliminará todas las hojas excepto una.

123456 Sub DeleteSheets ()Dim ws como hoja de trabajoPara cada ws en ActiveWorkbook.Sheetsws.DeleteSiguiente wsEnd Sub

El código anterior se detendrá con un error.

Haciendo clic Depurar nos llevará al código con la línea ofensiva resaltada.

Sin embargo, al agregar el En caso de error, reanudar siguiente línea al código evitará el error y la rutina siempre dejará una hoja en el libro de trabajo.

12345678 Sub DeleteSheets ()'agregar línea de error aquíEn caso de error, reanudar siguienteDim ws como hoja de trabajoPara cada ws en ActiveWorkbook.Sheetsws.DeleteSiguiente wsEnd Sub

En caso de error, vaya a 0

A menudo, si usa En caso de error, reanudar siguiente para ignorar un error, desea capturar errores más adelante en el código, o desea que su código deje de ejecutarse si ocurre un error en el futuro. Podemos restablecer el manejo de errores para que el código se rompa una vez más en los errores agregando la línea On Error GoTo 0.

12345678 Sub TestErrorIgnore ()Dim ws como hoja de trabajoEn caso de error, reanudar siguienteEstablecer ws = ActiveWorkbook.Sheets ("Hoja4")ws.DeleteEn caso de error, vaya a 0'más código aquíEnd Sub

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave