VBA Break For Loop - ¿Cómo salir para bucle en Excel VBA?

Tabla de contenido

Excel VBA Break For Loop

En VBA Break For Loop también se conoce como exit for loop, a cada ciclo en cualquier procedimiento se le ha dado un conjunto de instrucciones o criterios para que ejecute un nuber de tiempo, pero es muy común que algún ciclo entre en un ciclo infinito corrompiendo así el código en tales escenarios necesitamos romper o salir del bucle para salir de ciertas situaciones.

Digamos que hemos dado instrucciones al ciclo para que se ejecute 10 veces y, según la condición dada, si el valor de la celda o cualquier otro criterio proporcionado es exitoso, entonces tiene que salir del ciclo de Excel antes de completar la cuota de ciclo completo de 10. En este artículo, le mostraremos cómo salir del bucle según los criterios dados.

¿Cómo romper / salir de bucles en VBA?

# 1 - Descanso para el siguiente bucle

VBA For Next Loop se usa para recorrer celdas y realizar un conjunto específico de tareas. Por ejemplo, mire el siguiente código VBA.

Código:

Sub Exit_Loop () Dim K Tan largo para K = 1 a 10 celdas (K, 1) .Value = K Siguiente K End Sub

Esto insertará los números de serie de la celda A1 a A10.

Esto es lo obvio con For Next Loop.

Ahora quiero romper el ciclo cuando se encuentra cualquier valor en las primeras 10 celdas. Para esto, he ingresado algún valor de texto en la celda A8.

Ahora quiero instruir esto en el código, diciendo, "si la celda de bucle tiene un cierto valor, tiene que salir del bucle antes del límite predeterminado".

Código:

Sub Exit_Loop () Dim K As Long For K = 1 To 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else Exit For End If Next K End Sub

Mira estas líneas de código:

If Cells (K, 1) .Value = “” Then
Cells (K, 1) .Value = K
Else
Exit For
End If

Dice If Cells (K, 1). Valor = “el bucle de celda es igual a nada. Continúe el bucle de insertar números de serie del 1 al 10.

La última parte del ciclo dice:

Más

Salir para

Si la condición anterior no es VERDADERA, entonces el ciclo "Exit For".

Ahora ejecuta el código. Insertará números de serie hasta la celda A7.

El código anterior salió inmediatamente del bucle sin decir nada; ¿cómo sabemos que ha salido del ciclo?

Para aclarar esta ambigüedad, debemos colocar un cuadro de mensaje VBA simple a continuación.

Código:

Sub Exit_Loop () Dim K As Long For K = 1 To 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else MsgBox "Tenemos una celda no vacía, en la celda" & Celdas (K, 1) .Address & vbNewLine & "Estamos saliendo del bucle" Exit For End If Next K End Sub

Al recorrer la celda, si se encuentra alguna celda no vacía, se mostrará el mensaje que dice: “Tenemos una celda no vacía, en la celda A8. Estamos saliendo del bucle ”.

Esto también informará al usuario de la salida del bucle con una dirección de celda. Si se ingresa algún valor por error, entonces podemos verificar la dirección de celda devuelta en el cuadro de mensaje.

# 2 - Ruptura hasta bucle

Al igual que cuando salimos de For Next Loop, también podemos salir del ciclo "Do until". Por ejemplo, mire el siguiente código.

Código:

Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do until K = 11 Cells (K, 1) .Value = KK = K + 1 Loop End Sub

Este código también realiza la tarea de insertar números de serie. Por ejemplo, si deseamos salir del ciclo cuando el valor de la variable “k” se convierte en 6, necesitamos ingresar los criterios como SI k = 6 y luego salir del ciclo.

Código:

Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do until K = 11 If K <6 Then Cells (K, 1) .Value = K Else Exit Do End If K = K + 1 Loop End Sub

Esto ejecutará el ciclo hasta que el valor de la variable sea 6. Después de eso, saldrá del ciclo. Si desea mostrar el mensaje al usuario, también puede agregar el cuadro de mensaje.

Código:

Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do until K = 11 If K 5 "Exit Do End If K = K + 1 Loop End Sub

Esto mostrará el mensaje a continuación.

De esta manera, en base a los criterios dados, podemos salir del ciclo si los criterios son VERDADEROS, o de lo contrario podemos continuar el ciclo.

Articulos interesantes...