¿cómo navegar por un rango usando vba?

Para recorrer un rango en VBA, debe usar la opción «Para cada bucle». Con este bucle, puede escribir código en el que le indique a VBA que revise cada celda del rango, columna o fila y realice una actividad específica.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("A1:A10").Cells   iCell.Value = "Yes" Next iCell End Sub

Estos son los pasos para caminar por una playa:

  1. Primero, declare una variable para usar como celda del rango para recorrer.
    loop-through-range
  2. Después de eso, inicie el ciclo «Para cada» y use la variable «iCell» para representar cada celda en el rango durante el ciclo.
    use-icell-variable
  3. A continuación, debe escribir una línea de código para realizar una actividad en cada celda en la que recorremos el rango.
    write-a-line-of-code
  4. Al final, finalice el código para un bucle.
    end-the-code-for-a-loop

Recorra toda la columna y una fila usando VBA

De la misma manera, puedes iterar a través de cada celda en una fila usando el siguiente código que es idéntico al código que usamos en el ejemplo anterior, la única diferencia es el rango que especificamos.

recorrer-toda-la-columna-y-la-fila

Nota: Antes de revisar una columna o fila completa, debe comprender que el ciclo puede tardar algún tiempo y su Excel puede congelarse durante unos minutos.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("A:A").Cells   iCell.Value = "Yes" Next iCell End Sub

Y de la misma manera, puedes usar una línea completa como rango a recorrer.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("1:1").Cells   iCell.Value = "Yes" Next iCell End Sub

Recorrer el rango dinámico

Y si desea iterar sobre un rango dinámico de celdas, consulte el siguiente código.

recorrer el rango dinámico
 Sub vba_dynamic_loop_range() Dim iCell As Range Dim iRange1 As String Dim iRange2 As String Dim rangeName As String iRange1 = ActiveCell.Address iRange2 = ActiveCell.Offset(5, 5).Address rangeName = iRange1 & ":" & iRange2 For Each iCell In Range(rangeName).Cells   iCell = "Yes" Next iCell End Sub

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *