VBA – On Error Exit Sub

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on marzo 4, 2022

En VBA, puede programar su código para salir de un sub siempre que se encuentre un error. Para ello, utilice On Error GoTo y Exit Sub. On Error Goto le dice a VBA que cuando se encuentre un error  «vaya a» una sección específica de su código. Ej:

On Error GoTo ErrorHandler

Desde esa sección puede decirle a VBA que Salga de Sub para salir del subprocedimiento:

ErrorHandler:
Exit Sub

Siga leyendo, para ver estas líneas de código en acción…

Salir de un Procedimiento en caso de Error en VBA

En este ejemplo, generaremos un error al dividir por cero:

i = 5 / 0

Vea el código completo a continuación. Cuando VBA lea el error, «pasará» a la sección de código ErrorHandler y saldrá:

Sub TestError()
    Dim i As Integer
     
    On Error GoTo ErrorHandler
     
    i = 5 / 0
     
    'Hacer algo
    MsgBox i
     
    Exit Sub
ErrorHandler:
        MsgBox "Si ocurre un error entonces sale del procedimiento"
        Exit Sub
End Sub

Para especificar el manejo de errores, primero necesita declarar la sentencia On Error GoTo. Debe ser declarada al principio de un Sub:

On Error GoTo ErrorHandler

Después de eso necesita declarar el código de manejo de errores. Normalmente se encuentra al final del código:

ErrorHandler:
    MsgBox "Si hay un error, entonces salga del Sub"
    Exit Sub

Añadimos el «Exit Sub» encima del ErrorHandler porque sólo queremos ejecutar el código del ErrorHandler si hay un error.

Exit Sub
ErrorHandler:
    MsgBox "Si hay un error, entonces salga del Sub"
    <exit Sub
End Sub

Si se 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.

error division por cero

Si quieres aprender a terminar la ejecución de código en VBA, haz clic en este enlace: VBA End Si quieres aprender a salir de un Sub o Función, haz clic en este enlace: VBA Exit Sub o Function

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples