VBA en caso de error Ir a - Tipos de declaraciones de error en VBA

Excel VBA en caso de error Ir a

Los errores son parte integral de cualquier lenguaje de codificación, y las macros de VBA no son diferentes de esto. En mi opinión, encontrar por qué ocurre el error es el 90% del trabajo realizado, y el 10% radica en cómo corregir ese error. En cada lenguaje de codificación, los codificadores usan su propia forma de manejar los errores en su codificación, así que nosotros también los usamos en la codificación VBA. Muchas veces, necesitamos ignorar el error, o muchas veces podemos querer ir a cosas específicas cuando ocurre el error. “On Error” es la declaración que necesitamos usar en VBA para manejar errores.

Esta declaración tiene tres tipos de declaraciones, y a continuación se muestra la lista.

  1. En caso de error Goto 0
  2. En caso de error Goto (etiqueta)
  3. En caso de error, reanudar siguiente

En este artículo, veremos cómo se utilizan estas tres declaraciones en la codificación VBA para manejar cualquier tipo de error.

¿Cómo usar VBA en declaraciones de error?

# 1 - En caso de error, reanudar a continuación

Como dice la declaración en sí, "En caso de error, reanudar a continuación" significa que siempre que se produzca el error en el código, "reanudar" la siguiente línea del código ignorando el código de la línea de error. Ahora eche un vistazo al siguiente código.

En el siguiente código, mencioné los nombres de las hojas de trabajo y solicité ingresar el valor en la primera celda como "Prueba de error".

Código:

Sub On_Error_Resume_Next () Hojas de trabajo ("Ws 1"). Seleccionar rango ("A1"). Valor = "Error de prueba" Hojas de trabajo ("Ws 2"). Seleccionar rango ("A1"). Valor = "Error de prueba" Hojas de trabajo ( "Ws 3"). Seleccione el rango ("A1"). Valor = "Error de prueba" Hojas de trabajo ("Ws 4"). Seleccione el rango ("A1"). Valor = "Error de prueba" End Sub

Ahora tengo las siguientes hojas de trabajo en mi libro de trabajo.

  • Ejecutaré el código y veré qué sucede.
  • Recibimos el error "Subíndice fuera de rango", haga clic en "Depurar" para ver en qué línea obtuvimos el error.
  • Entonces, en la línea "Hojas de trabajo (" Ws 3 "). Seleccione", obtuvimos un error. Esto se debe a que, en nuestro libro de trabajo, no hay una hoja de trabajo llamada "Ws 3", por lo que se encontró un error.

En tales casos, es posible que deseemos ignorar el error y reanudar la ejecución del código en la siguiente línea. Aquí es donde entra en escena nuestro controlador de errores "En caso de error, reanudar a continuación".

  • Todo lo que tenemos que hacer es agregar la línea "En caso de error, reanudar siguiente" al comienzo de la macro.

Ahora ejecute este código y no mostrará ningún mensaje de error porque siempre que el código encuentre un error, ignorará el error y continuará con la siguiente línea de código.

# 2 - En caso de error, vaya a 0

No se trata de un gestor de errores, sino de un habilitador de mensajes de error después de que deshabilitamos el mensaje de error mediante la instrucción "En caso de error, reanudar el siguiente".

Una vez que use la instrucción "Resume Next", las macros de VBA comienzan a ignorar cualquier tipo de error que ocurra y continúan con la siguiente línea de códigos. Pero no queremos que esto suceda todo el tiempo porque algunos errores debemos ignorar intencionalmente, otros necesitamos una notificación.

Si algún conjunto de código específico arroja un error en ese bloque de código, solo necesitamos ignorar los errores en otras partes del código. No queremos ignorar el error.

  • Mire la imagen de abajo para ver el uso de la declaración "On Error GoTo 0".

Así que ahora los errores serán ignorados hasta que el código encuentre el habilitador de notificación de error "On Error GoTo 0" una vez que esta línea de código ejecute macros de nuevo a la normalidad y comience a generar mensajes de error como de costumbre.

# 3 - En caso de error Ir a etiqueta

Hemos visto cómo ignorar el error y cómo habilitar la notificación de error. Ahora, usando este método, podemos ir a una línea de código específica.

En este método, "Etiqueta" significa que podemos dar cualquier nombre a esta etiqueta, y la misma etiqueta también se debe dar en la línea de código requerida.

Por ejemplo, observe el mismo código del ejemplo anterior.

Ahora ejecutemos el código línea por línea presionando la tecla de función F8.

Ahora la macro leerá la declaración del controlador de errores; presione la tecla F8 para ejecutar los 2 primeros códigos de la hoja de trabajo.

Ahora la macro está a punto de ejecutar el tercer código de la hoja de trabajo, que no está en el libro de trabajo, presione la tecla F8 y vea qué sucede.

Debido a que la macro encontró un error en la siguiente línea de código, saltó a la etiqueta del controlador de errores "ErrorMessage", que se describió a través de la declaración "On Error GoTo (Label)".

Ahora el cuadro de mensaje mostrará el mensaje como "Ocurrió un error y salió de la macro".

Cosas para recordar

  • Vba On Error GoTo 0 habilitará la notificación de error una vez más, así que no olvide agregar esto después de proporcionar un controlador de errores.
  • Debe estar absolutamente seguro de en qué parte del código desea ignorar el error, así que incluya el controlador de errores solo para ese bloque de código.

Articulos interesantes...