En VBA, para finalizar TODA la ejecución del código, use el Fin mando.
1 | Fin |
Cuando la ejecución del código llega a Fin, finalizará inmediatamente la ejecución y abandonará el programa.
Si desea aprender cómo salir de un Sub en caso de error, haga clic en este enlace: VBA On Error Exit Sub
Si desea aprender cómo salir de una función o sub, haga clic en este enlace: VBA Exit Sub o función
Salir de todo el código en VBA
Verá en el ejemplo lo que sucede cuando usamos el Fin comando en VBA. Creamos un Sub EndSub, que tiene el Fin comando adentro. Este Sub se llama desde CallEndSub. Aquí está el código:
123456789101112131415161718 | Sub privado EndSub ()Dim i como enteroPara i = 1 a 10Si i = 5 EntoncesMsgBox "El valor de i es" & iFinTerminara siSiguiente yoEnd SubSub Llamada privadaEndSub ()Llamar EndSubMsgBox "End Sub"End Sub |
En el EndSub, primero ingresamos el bucle For si el valor de i es menor que 10:
123 | Para i = 1 a 10Siguiente yo |
Después de eso, verificamos si el valor de i es igual a 5, usando el comando If. Si el valor es 5, devolvemos el cuadro de mensaje con el valor de i y usamos el comando Fin.
1234567 | Si i = 5 EntoncesMsgBox "El valor de i es" & iFinTerminara si |
Si no se cumple la condición, la siguiente declaración aumenta i en 1 y vuelve a entrar en el ciclo For:
1 | Siguiente yo |
En el CallEndSub, primero llamamos al Sub EndSub:
1 | Llamar EndSub |
Después de eso, regresamos el cuadro de Mensaje:
1 | MsgBox "End Sub" |
Si ejecuta el CallEndSub, primero llamará al EndSub. Si ejecuta este código en el modo de depuración, verá que pasará por el bucle 5 veces. En el 5th iteración, el valor de la variable i se convierte en 5 y el código entra en el cuerpo If. Ahora el MsgBox "El valor de i es" & i se ejecuta y Fin después:
Imagen 1. Fin de VBA
Como puede ver, la ejecución del código se detiene justo después de la Fin comando, entonces el MsgBox "End Sub" nunca se ejecuta.