Instrucción Do...Loop
Repite un bloque de instrucciones mientras una condición sea True o hasta que esta se convierta en True.
Sintaxis
Do [{ While | Until } condition ] [ statements ] [ Exit Do ] [ statements ] Loop
También puede usar esta sintaxis:
Do [ instrucciones ] [ Exit Do ] [ statements ] Loop [{ While | Until } condition ]
La sintaxis de la instrucción Do Loop consta de las partes siguientes:
Parte | Descripción |
---|---|
condition | Opcional. Expresión numérica o expresión de cadena que es True o False. Si condition es Null, condition se trata como False. |
statements | Una o más instrucciones que se repiten mientras, o hasta que, condition sea True. |
Comentarios
Cualquier número de instrucciones Exit Do pueden colocarse en cualquier lugar de Do…Loop como forma alternativa para salir de Do…Loop. Exit Do se utiliza a menudo después de evaluar alguna condición, por ejemplo If... Then, en cuyo caso, la instrucción Exit Do transfiere el control a la instrucción inmediatamente posterior a Loop.
Si se usa dentro de instrucciones Do…Loop anidadas, Exit Do transfiere el control al bucle que está ubicado en un nivel anidado superior con respecto al bucle donde ocurre Exit Do.
Ejemplo
Este ejemplo muestra cómo usar instrucciones Do... Loop. La instrucción interna Do...Loop recorre un bucle 10 veces, le pregunta al usuario si debe seguir trabajando, establece el valor de la marca como False cuando se selecciona No y sale antes de tiempo mediante la instrucción Exit Do. El bucle externo sale inmediatamente, una vez comprobado el valor de la marca.
Public Sub LoopExample()
Dim Check As Boolean, Counter As Long, Total As Long
Check = True: Counter = 0: Total = 0 ' Initialize variables.
Do ' Outer loop.
Do While Counter < 20 ' Inner Loop
Counter = Counter + 1 ' Increment Counter.
If Counter Mod 10 = 0 Then ' Check in with the user on every multiple of 10.
Check = (MsgBox("Keep going?", vbYesNo) = vbYes) ' Stop when user click's on No
If Not Check Then Exit Do ' Exit inner loop.
End If
Loop
Total = Total + Counter ' Exit Do Lands here.
Counter = 0
Loop Until Check = False ' Exit outer loop immediately.
MsgBox "Counted to: " & Total
End Sub
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.