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.