Controlar errores con On Error Goto
On Error Goto es una declaración básica en VBA para Excel que permite el manejo personalizado de errores. Esto le permite controlar errores inesperados que ocurren en su código, evitando que interrumpan el flujo normal de su programa y afecten la experiencia del usuario.
¿Como funciona?
On Error Goto. Esta declaración se coloca al principio del bloque de código donde se manejarán los errores. Las etiquetas, por otro lado, se definen en otra parte del código y representan el punto al que se redirigirá el flujo de ejecución si ocurre un error en el bloque asociado.
On Error Goto Etiqueta_de_error ' Activa el control de errores
' Bloque de código donde se pueden producir errores
' ...
Goto Continuar ' Opcional, si deseas continuar después de manejar el error
Etiqueta_de_error: ' Define el punto de salto en caso de error
' Código para manejar el error
' ...
Exit Sub ' Salir del procedimiento
Continuar: ' Opcional, para retomar la ejecución normal
' Resto del código
End Sub
¿Para qué se utiliza?
En caso de error, Goto se utiliza principalmente para:
- En lugar de mensajes genéricos de Excel, puede mostrar mensajes de error que sean más claros y útiles para los usuarios.
- Puede guardar información de errores en un archivo de texto o base de datos para su posterior análisis.
- Realice una acción de recuperación: puede ejecutar cierto código para intentar corregir el error o reducir su impacto.
- Puede evitar que errores inesperados provoquen que todo el programa se cierre repentinamente.
Ejemplo:
Imagine que tiene un proceso que abre un archivo de texto y lee su contenido. Quiere manejar los errores que ocurren cuando el archivo no existe.
On Error Goto Manejar_Error ' Activa el control de errores
' Intenta abrir el archivo de texto
Set archivoTexto = Open("C:\MiArchivo.txt")
If archivoTexto Is Nothing Then ' Verifica si el archivo existe
Goto Manejar_Error ' Si no existe, salta a la etiqueta
End If
' Lee el contenido del archivo
' ...
Close archivoTexto ' Cierra el archivo
Exit Sub ' Sale del procedimiento
Manejar_Error: ' Etiqueta de error
MsgBox "Error al abrir el archivo: " & Err.Description
Exit Sub ' Sale del procedimiento
En este ejemplo, si el archivo «C:\MyFile.txt» no existe, el flujo de ejecución saltará a la etiqueta Handle_Error, mostrará un mensaje de error personalizado al usuario y luego saldrá del programa.
Responses