Ciclo Do...Loop Until

Repetir el ciclo hasta que se cumpla alguna condición

Do
       'código
 Loop {While | Until} condición

Numerar las filas de la siguiente tabla hasta encontrar una en blanco:

Tabla de nombres


La siguiente macro:
  • Recorre todas las filas de la columna 1 hasta encontrar una celda vacía
  • En la columna de la derecha asigna el número de fila encontrado
  • Asume que en la primera fila hay un dato
  • Observe que la condición de salida se prueba hasta la última instrucción del ciclo

Sub Ciclos()

Dim fila As Integer

    fila = 1
    Do
        Cells(fila, 2) = fila
        fila = fila + 1
    Loop Until Cells(fila, 1).Value = ""
    
End Sub


Tabla resultante al ejecutar la macro anterior:




Repetir el ciclo hasta que se encuentre una celda vacía

La siguiente macro:
  • Recorre el rango de datos y se detiene hasta que se encuentra una celda en vacía
  • Utiliza la función IsEmpty para identificar la celda vacía
  • La condición de salida se prueba a la salida del ciclo

Sub Ciclos()
Dim i As Integer

    i = 0
    
    Do
      i = i + 1
    Loop Until IsEmpty(Cells(i, 1))
    
   Cells(i, 1).Select
End Sub

Tabla resultante al ejecutar la macro anterior: