Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. VBA Excel (versiones 2021 y Microsoft 365)
  3. Depuración y administración de errores
Extrait - VBA Excel (versiones 2021 y Microsoft 365) Programar en Excel: Macros y lenguaje VBA
Extractos del libro
VBA Excel (versiones 2021 y Microsoft 365) Programar en Excel: Macros y lenguaje VBA Volver a la página de compra del libro

Depuración y administración de errores

Diferentes tipos de error

Se distinguen diferentes tipos de error en el lenguaje VBA:

  • Errores de sintaxis.

  • Errores de compilación.

  • Errores de ejecución.

  • Errores de lógica.

1. Errores de sintaxis

Los errores de sintaxis se detectan automáticamente a medida que se introduce el código en VBA.

 Para activar la comprobación de sintaxis, en el menú Herramientas, seleccione Opciones, luego seleccione la pestaña Editor y marque la casilla Comprobación de sintaxis automática.

Ejemplo

images/CAP10IMG01N.PNG

Los errores de sintaxis no corregidos provocarán un error de compilación; de ahí el mensaje que aparece.

2. Errores de compilación

Los errores de compilación se detectan cuando Excel trata de compilar el código. 

El código VBA puede compilarse de dos maneras:

  • Bajo demanda, al seleccionar la opción Compilar VBAProject del menú Depuración. En este caso, el código se compila en su totalidad.

  • Automáticamente al ejecutar el código. En este caso, solamente se compila el código contenido en los procedimientos cuando se llaman por primera vez. Los procedimientos que no se llaman no se compilarán.

Se recomienda compilar el programa antes de ejecutarlo para ganar tiempo en la actualización.

Ejemplo

images/CAP10IMG02N.PNG

Es posible anticipar los errores de ejecución debidos a las variables no declaradas usando la instrucción Option...

Depuración

1. Presentación

La depuración puede activarse de distintas maneras:

  • Ejecutando el programa paso a paso.

  • Insertando puntos de interrupción en el código VBA.

  • Haciendo clic en el botón Depurar cuando se produce un error de ejecución.

Las diferentes herramientas de depuración permiten:

  • Conocer en todo momento el valor de las variables o de las expresiones.

  • Ejecutar instrucciones.

  • Modificar interactivamente el código.

  • Ejecutar el código paso a paso.

  • Agregar puntos de interrupción.

2. La barra de herramientas Depuración

La barra de herramientas Depuración permite acceder directamente a las herramientas de depuración.

images/CAP09IMG01.png

1. Modo de diseño: activa o desactiva el modo de diseño.

2. Ejecutar (método abreviado de teclado [F5]): ejecuta el código del procedimiento en curso, de la hoja UserForm activa o de una macro.

3. Interrumpir (método abreviado de teclado [Ctrl][Pausa]): interrumpe la ejecución del programa en curso y pasa al modo Interrupción.

4. Restablecer: borra el contenido de las variables y reinicializa el proyecto.

5. Alternar punto de interrupción (método abreviado de teclado [F9]): define o elimina un punto de interrupción en la línea actual; el código se ejecutará hasta el punto de interrupción, y luego pasará al modo depuración.

6. Paso a paso...

Administración de errores en VBA

Cuando se produce un error, VBA genera un error de ejecución que interrumpe la aplicación. Otros errores pueden hacer que el código VBA se comporte de manera imprevisible.

Para evitar esto, es posible manejar el error con la ayuda de las siguientes instrucciones y funciones:

On Error (instrucción)

Indica una secuencia de instrucciones que se ejecutará en caso de error.

Sintaxis 1

On Error GoTo línea 

Activa la rutina de administración de errores que comienza en la línea indicada por el argumento línea.

El argumento línea debe ser una etiqueta o número de línea.

La línea debe pertenecer al mismo procedimiento que la instrucción On Error.

Si el argumento línea es un número de línea, debe ser obligatoriamente el primer carácter no vacío de la línea.

Sintaxis de la rutina de administración de errores

Línea: 
   instrucciones 
Resume 

La instrucción Resume permite continuar la ejecución del código cuando termina la rutina de administración de errores, es decir, una vez resuelto el problema que produjo el error.

Hay tres sintaxis diferentes para Resume:

Resume 0

reanuda la ejecución del código donde el error se produjo.

Resume Next

reanuda a partir de la instrucción que sigue inmediatamente a la que generó el error.

Resume Línea

reanuda en la línea especificada por el argumento Línea.

Para impedir la ejecución del código de administración de errores cuando no hay errores, coloque una instrucción...