VBA Break For Loop

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 ciclo 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?

Puede descargar esta plantilla de Excel de VBA Break For Loop aquí - Plantilla de Excel de VBA Break For Loop

# 1 - Descanso para el siguiente bucle

VBA For Next Loop se usa para recorrer celdas y realizar un conjunto específico de tareas. Para ver un 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 encuentre algún 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 que dice "si la celda de bucle tiene 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:

Si Cells (K, 1) .Value = “” Entonces

Celdas (K, 1) .Valor = K

Más

  Salir para

Terminara si

Dice If Cells (K, 1) .Value = "" Looping Cell es igual a nada. Continúe el ciclo de inserción de 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 bucle "Exit For".

Ahora ejecute el código, insertará números de serie hasta la celda A7.

El código anterior salió de inmediato del bucle sin decir nada, ¿cómo sabemos que ha salido del bucle?

Para despejar esta ambigüedad, necesitamos poner un cuadro de mensaje VBA simple como se muestra 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 ingresó algún valor por error, podemos verificar la dirección de la celda devuelta en el cuadro de mensaje.

# 2 - Ruptura hasta el bucle

Como hemos salido 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 se convierta en 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 Siempre que K = 1 Hacer hasta K = 11 Si K 5 "Salir Hacer final Si K = K + 1 Loop End Sub 

Esto mostrará el mensaje a continuación.

Así, según los criterios dados, podemos salir del ciclo si los criterios son VERDADEROS o podemos continuar el ciclo.