En VBA, puede programar su código para salir de un sub siempre que se encuentre un error. Para hacer esto, use En caso de error Ir a y Salir de Sub.
On Error Goto le dice a VBA que cuando se encuentre un error, "Ir a" una sección específica de su código. Ex:
1 | En caso de error Ir a ErrorHandler |
Desde dentro de esa sección, puede decirle a VBA que Salga de Sub para salir del subprocedimiento:
12 | ErrorHandler:Salir de Sub |
Siga leyendo para ver estas líneas de código en acción …
Salir de un sub por error en VBA
En este ejemplo, generaremos un error dividiendo por cero:
1 | i = 5/0 |
Vea el código completo a continuación. Cuando VBA lee el error, "irá" a la sección de código ErrorHandler y saldrá:
123456789101112131415 | Sub TestError ()Dim i como enteroEn caso de error Ir a ErrorHandleri = 5/0'Haz algo con yoMsgBox iSalir de SubErrorHandler:MsgBox "Si hay error, salga del Sub"Salir de SubEnd Sub |
Para especificar el manejo de errores, primero debe declarar En caso de error Ir a declaración. Debe declararse al comienzo de un Sub:
1 | En caso de error Ir a ErrorHandler |
Después de eso, debe declarar el código de manejo de errores. Suele estar al final del código:
123 | ErrorHandler:MsgBox "Si hay un error, salga del Sub"Salir de Sub |
Agregamos "Exit Sub" encima del ErrorHandler porque solo queremos ejecutar el código ErrorHandler si hay un error.
12345 | Salir de SubErrorHandler:MsgBox "Si hay un error, salga del Sub"Salir de SubEnd Sub |
Si ejecuta el Sub, se producirá un error debido a la división por cero. En ese momento se ejecutará el código de manejo de errores. Aparece el cuadro de mensaje y se sale del Sub.
Imagen 1. VBA On Error Exit Sub
Si desea aprender cómo finalizar la ejecución de código en VBA, haga clic en este enlace: VBA End
Si desea aprender cómo salir de una función o sub, haga clic en este enlace: VBA Exit Sub o función