Uso de Do... instrucciones Loop
Use Hacer... Loop instrucciones para ejecutar un bloque de instrucciones un número indefinido de veces. Las instrucciones se repiten ya sea mientras una condición es True o hasta que una condición pase a ser True.
Repetición de instrucciones mientras una condición es True
Hay dos maneras de usar la palabra claveWhile para comprobar una condición en una clase Do... Loop instrucción. Puede comprobar la condición antes de entrar en el bucle o puede comprobarla después de que el bucle se haya ejecutado al menos una vez.
En el procedimiento siguiente ChkFirstWhile
, compruebe la condición antes de entrar en el bucle. Si myNum
está establecido en 9 en lugar de 20, las instrucciones dentro del bucle nunca se ejecutarán. En el procedimiento ChkLastWhile
, las instrucciones dentro del bucle se ejecutan una sola vez antes de que la condición pase a ser False.
Sub ChkFirstWhile()
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Sub ChkLastWhile()
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "The loop made " & counter & " repetitions."
End Sub
Repetición de instrucciones hasta que una condición se convierta en True
Hay dos maneras de usar la palabra clave Until para comprobar una condición en una instrucción Do...Loop. Puede comprobar la condición antes de entrar en el bucle (como se muestra en el procedimiento ChkFirstUntil
) o puede comprobarla después de que el bucle se haya ejecutado al menos una vez (como se muestra en el procedimiento ChkLastUntil
). El bucle continúa mientras la condición permanece False.
Sub ChkFirstUntil()
counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Sub ChkLastUntil()
counter = 0
myNum = 1
Do
myNum = myNum + 1
counter = counter + 1
Loop Until myNum = 10
MsgBox "The loop made " & counter & " repetitions."
End Sub
Salir de un do... Loop instrucción desde dentro del bucle
Puede salir de un do... Loop mediante la instrucción Exit Do. Por ejemplo, para salir de un bucle sin fin, use la instrucción Exit Do en el bloque de instrucciones True de una clase If... Entonces... Instrucción Else o una instrucción Select Case . Si la condición es False, el bucle se ejecutará como de costumbre.
En el ejemplo myNum
siguiente se asigna un valor que crea un bucle sin fin. La instrucción If...Then...Else comprueba esta condición y, a continuación, sale y evita el bucle sin fin.
Sub ExitExample()
counter = 0
myNum = 9
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
If myNum < 10 Then Exit Do
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Nota:
[!NOTA] Para detener un bucle sin fin, presiones ESC o CTRL+INTERRUMPIR.
Vea también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.