VBA Break For Loop | Com sortir del bucle a Excel VBA?
Excel VBA Break For Loop
En VBA Break For Loop també es coneix com a sortida per bucle, a cada bucle de qualsevol procediment se li ha donat algun conjunt d’instruccions o criteris perquè s’executi nuber de temps, però és molt comú que algun bucle entri en un bucle infinit corrompent el codi en aquests escenaris. necessiteu una pausa o sortida del bucle per sortir de determinades situacions.
Suposem que hem donat instruccions al bucle perquè s’executi 10 vegades i en funció de la condició donada si el valor de la cel·la o qualsevol altre criteri subministrat té èxit, ha de sortir del bucle Excel abans de completar la quota de bucle completa de 10. En aquest article , us mostrarem com sortir del bucle segons els criteris indicats.
Com trencar / sortir de bucles a VBA?
Podeu descarregar aquesta plantilla VBA Break For Loop Excel aquí: plantilla Excel VBA Break For Loop# 1: Break for Next Loop
VBA For Next Loop s’utilitza per fer un bucle sobre cel·les i realitzar un conjunt específic de tasques. Per obtenir un exemple, mireu el codi VBA següent.
Codi:
Sub Exit_Loop () Dim K sempre que K = 1 a 10 cel·les (K, 1). Valor = K Next K End Sub
Això inserirà números de sèrie de la cel·la A1 a A10.
Això és obvi amb For Next Loop.
Ara vull trencar el bucle quan es troba algun valor a les primeres 10 cel·les, per a això he introduït algun valor de text a la cel·la A8.
Ara vull indicar-ho al codi que diu "si la cel·la de bucle té cert valor, ha de sortir del bucle abans del límit predeterminat".
Codi:
Sub Exit_Loop () Dim K sempre que sigui de K = 1 a 10 si les cel·les (K, 1). Valor = "" Aleshores les cel·les (K, 1). Valor = K Elit Sortir per al final si el següent K final del sub
Mireu aquestes línies de codi:
Si les cel·les (K, 1). Valor = "" Aleshores
Cèl·lules (K, 1). Valor = K
Altrament
Surt per
Finalitza If
Es diu que si les cel·les (K, 1). Valor = "" la cel·la en bucle no és igual a res, continueu el bucle d'inserció de números de sèrie de l'1 al 10.
L'última part del bucle diu:
Altrament
Surt per
Si la condició anterior no és CERT, llavors el bucle "Surt per".
Ara executeu el codi que inserirà números de sèrie fins a la cel·la A7.
El codi anterior va sortir immediatament del bucle sense dir res, com sabem que ha sortit del bucle.
Per esborrar aquesta ambigüitat, hem de posar un quadre de missatge VBA senzill com es mostra a continuació.
Codi:
Sub Exit_Loop () Dim K Long Per a K = 1 a 10 Si les cel·les (K, 1). Valor = "" Aleshores les cel·les (K, 1). Valor = K Altres MsgBox "Tenim una cel·la no buida, a la cel·la" & Cel·les (K, 1). Adreça & vbNewLine & "Estem sortint del bucle" Surt per al final si el següent K final del sub
Quan es fa un bucle a través de la cel·la si es troba alguna cel·la no buida, es mostrarà el missatge que diu "Tenim una cel·la no buida, a la cel·la A8. Sortim del bucle ”.
Això també informarà l'usuari de la sortida del bucle amb una adreça de cel·la. Si s’introdueix algun valor per error, podem comprovar l’adreça de la cel·la retornada al quadre de missatge.
# 2: Break Do Until Loop
Igual que com hem sortit de Next Loop, també podem sortir del bucle "Fes fins". Per exemple, mireu el codi següent.
Codi:
Sub Exit_DoUntil_Loop () Dim K Long K = 1 Feu fins a K = 11 cel·les (K, 1). Valor = K K = K + 1 Loop End Sub
Aquest codi també realitza la tasca d'inserir números de sèrie. Per exemple, si volem sortir del bucle quan el valor de la variable "k" passa a ser 6, hem d'introduir els criteris com IF k = 6 i sortir del bucle.
Codi:
Sub Exit_DoUntil_Loop () Dim K Long K = 1 Feu fins a K = 11 Si K <6 Aleshores les cel·les (K, 1). Valor = K Elit Exit Do End Si K = K + 1 Loop End Sub
Això executarà el bucle fins que el valor de la variable sigui 6, després sortirà del bucle. Si voleu mostrar el missatge a l'usuari, també podeu afegir el quadre de missatge.
Codi:
Sub Exit_DoUntil_Loop () Dim K Llarg K = 1 Feu fins a K = 11 Si K 5 "Sortiu Finalitza si K = K + 1 Final de bucle Sub
Es mostrarà el missatge següent.
Així, basant-nos en els criteris indicats, podem sortir del bucle si els criteris són TRUE o bé podem continuar el bucle.