Excel VBA – Try Catch – Error – Capturar Errores
Este artículo demostrará cómo usar VBA para Capturar Errores.
En la mayoría de los lenguajes de programación, puede utilizar la sintaxis Try. ..Catch…End Try para evitar que se produzcan errores. El código literalmente intenta ejecutarse y si encuentra un error, salta a la línea de captura donde el error puede ser documentado y devuelto al usuario. VBA no utiliza la sintaxis Try…Catch…End Try pero podemos imitar esta sintaxis utilizando en su lugar la sintaxis On Error GoTo.
On Error GoTo
La sentencia On Error GoTo en VBA forzará a nuestro código a moverse a una línea específica de código si ocurre un error.
Sub RenameSheet ()
On Error GoTo eh
ActiveSheet.Name = "Hoja1"
Exit Sub
eh:
MsgBox Err.Description
End Sub
En el ejemplo anterior, hemos añadido una trampa de error en la que indicamos al código que se mueva al controlador de errores si se produce un error. A continuación intentamos renombrar la hoja para que sea Hoja1. Si estamos en la Hoja2 por ejemplo, e intentamos renombrarla a Hoja1 PERO la Hoja1 ya existe, entonces se producirá el error y el código saltará al manejador de errores.
Sin embargo, si no existe la hoja 1 en el libro de trabajo, entonces el código se ejecutará perfectamente y como hay un manejador de error Exit Sub ANTES del manejador de error, el código del manejador de error no será alcanzado.