Manejo de errores de VBA

Manejo de errores de Excel VBA

En VBA, cuando trabajamos con códigos, podemos encontrar muchos tipos diferentes de errores y la forma de solucionar estos errores se conoce como manejo de errores, ahora puede haber algunos errores que se cometen en la sintaxis que sobresalen lo resaltan pero cuando hay algún error que está fuera del rango o algo que no existe Excel nos da una ventana emergente para el mismo, es importante saber qué código de error es para qué error para poder identificar el error en el código.

En Excel VBA, al ejecutar cualquier conjunto de códigos, obtenemos algún tipo de error. Algunos de estos errores son errores de sintaxis, algunos son errores que no se pueden ejecutar. El error de sintaxis es cuando el usuario lo resalta en color rojo por el propio Excel. Pero cuando hay algún otro tipo de error de tiempo de ejecución, ¿cómo lo manejamos y cómo vamos más allá de esto? Es lo que cubriremos en este artículo.

Aparte de los errores de sintaxis, los otros errores de tiempo de ejecución deben manejarse mientras se ejecuta cualquier conjunto de códigos. Primero, déjeme dar un ejemplo de cómo ocurre el otro error de tiempo de ejecución. Eche un vistazo al siguiente código,

Este es un código de muestra cuando se ejecuta devolverá lo que está escrito en la función msgbox. Pero como podemos ver, en la segunda línea del código hay 4/0 que no es posible en términos matemáticos, por lo que devolverá un error de tiempo de ejecución. Ejecutemos el código anterior y veamos el error que obtendremos.

Este es el error que obtenemos al ejecutar el código dado. Ahora, ¿cómo manejamos este error mediante Error Handling?

Hay dos métodos para manejar errores que son:

  1. En Error Goto, y
  2. En caso de error, reanudar a continuación.

Explicación

Como se explicó anteriormente, obtenemos muchos tipos de errores en VBA, algunos son de sintaxis y otros son de tiempo de ejecución. Los errores de sintaxis ya están resaltados en color rojo, por ejemplo, consulte la captura de pantalla a continuación,

Mientras que el otro es errores de tiempo de ejecución. Básicamente, Excel hará las siguientes tres cosas, mostrará un error o ignorará ese error o mostrará un cierto conjunto de instrucciones. Para realizar tales tareas, necesitamos dar instrucciones y esto se llama Manejo de errores.

¿Cómo manejar errores en el código VBA?

Puede descargar esta plantilla de Excel de manejo de errores de VBA aquí - Plantilla de Excel de manejo de errores de VBA

Ejemplo 1

Para el primer ejemplo, tomemos el primer código que tomamos como demostración. En el ejemplo anterior, hemos visto que el código da un error de tiempo de ejecución en la segunda función de msgbox.

Escriba el siguiente código después de abrir la subfunción,

Código:

 Submuestra () En caso de error Reanudar Siguiente MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Ahora cuando ejecutamos el código de arriba vemos que la línea de código que tiene el error no se ejecuta. Excel omite esa línea y continúa en la siguiente.

Hay otro método para manejar el error es vba Goto Statement, proporcionamos a Excel un destino al que ir cuando encuentra un error. En lugar del código de manejo de errores anterior, insertamos, escribimos el siguiente código,

Código:

 Submuestra () en caso de error Ir a az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Le damos a Excel Az como destino al que ir si encuentra un error. Ahora, después de msgbox, escriba otro código como se muestra a continuación,

Código:

 Submuestra () en caso de error Ir a az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Listo: Salir de Sub 

Ahora necesitamos definir el destino az como lo que debería hacer cuando Excel encuentra un error en el código.

Código:

 Submuestra () en caso de error Ir a az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Hecho: Salir de Sub az: MsgBox "Esto es un error" & Err.Description End Sub 

Ahora, cuando ejecutamos este código, vemos el resultado que se muestra.

Este es el primer resultado del cuadro de mensaje y como sabemos que tenemos un error en la siguiente línea de nuestro código, veamos el resultado que dará Excel.

La descripción del error anterior en el código nos ayuda a mostrar exactamente qué error ha ocurrido en nuestro código.

Ejemplo # 2

Hemos aprendido a manejar errores en nuestros códigos. Veamos otro ejemplo de cómo manejar errores. Considere el siguiente código como nuestro segundo ejemplo.

Tenemos un error algo similar al del ejemplo 1. El error está en la línea d = i / b. Ahora manejaremos estos errores usando los dos métodos explicados anteriormente.

Escriba el siguiente código después de abrir la subfunción,

Código:

 Submuestra2 () En caso de error Reanudar Siguiente bx Dim i como entero, b como entero, c como entero, d como entero i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub 

Ahora, cuando ejecutamos nuestro código, podemos ver que ignora la segunda línea y solo muestra el valor de C.

El controlador de errores anterior fue un resumen a continuación, ahora usaremos Ir a, donde le diremos a Excel un destino que debe ir cuando encuentre un error. Anote el siguiente código,

Código:

 Submuestra2 () en caso de error Ir a bx Dim i como entero, b como entero, c como entero, d como entero i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

El bx es un destino dado cuando encuentra un error después de que msgbox D escriba el siguiente código,

Código:

 Submuestra2 () en caso de error Ir a bx Dim i como entero, b como entero, c como entero, d como entero i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Salir de sub 

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

 Sub Sample2() On Error GoTo bx Dim i As Integer , b As Integer , c As Integer , d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub bx: MsgBox " This is another Error " & Err.Description End Sub 

Now when we execute the code we can see that excel first gives us the value for C.

Now in another step, it will give us the prompt we provided it when it encounters an error.

This is how we handle the normal runtime errors in Excel VBA.

Things to Remember

There are a few things we need to remember about Error Handling:

  1. On Error Resume Next Ignores the error.
  2. On Error GoTo Gives excel a destination when it encounters an error.
  3. The description is used to show the exact error occurred to the user.