Cómo usar FOR en Excel: bucles VBA y alternativas con fórmulas
Cuando hablamos de usar un bucle FOR en Excel, la vía más directa y potente es a través del editor de VBA (Visual Basic for Applications), ya que Excel por sí solo no dispone de una instrucción FOR nativa como los lenguajes de programación. Para acceder al editor, pulsa Alt + F11, inserta un módulo nuevo con Insertar > Módulo y escribe tu código. La sintaxis básica del bucle es:
For i = 1 To 10
Cells(i, 1).Value = i
Next i
Este fragmento rellena las 10 primeras celdas de la columna A con los números del 1 al 10. La variable i es el contador que incrementa en cada iteración hasta alcanzar el valor final indicado tras la palabra To.
Si necesitas un paso diferente a 1, utiliza la cláusula Step:
For i = 1 To 100 Step 5
Cells(i, 1).Value = i * 2
Next i
Esto recorre solo los índices impares (1, 6, 11, 16...) hasta 100, multiplicando cada uno por 2 antes de escribirlo en la hoja.
Para iterar sobre un rango concreto puedes combinar FOR con la propiedad Cells o Range. Por ejemplo, para recopilar todas las celdas no vacías de la columna B y copiarlas en la columna D:
For i = 1 To 500
If Cells(i, 2).Value <> "" Then
Cells(i, 4).Value = Cells(i, 2).Value
End If
Next i
Un patrón muy útil es el For Each, que recorre directamente un rango de celdas sin necesidad de un contador numérico:
Dim celda As Range
For Each celda In Range("A1:A20")
If celda.Value > 50 Then celda.Font.Bold = True
Next celda
Este ejemplo pone en negrita todas las celdas de A1 a A20 cuyo valor supere 50. Es más legible que un For numérico cuando no necesitas el índice.
Para bucles anidados, por ejemplo recorrer una tabla de 10 filas x 5 columnas y sumar cada celda:
Dim total As Double
total = 0
For f = 1 To 10
For c = 1 To 5
total = total + Cells(f, c).Value
Next c
Next f
MsgBox "Suma total: " & total
Si en algún momento necesitas salir del bucle antes de tiempo, la instrucción Exit For rompe la iteración inmediatamente, igual que una sentencia break en otros lenguajes.
Por último, recuerda que VBA se guarda dentro del libro (macro) y el archivo debe tener extensión .xlsm para conservar las macros. Si prefieres evitar VBA, Excel ofrece alternativas puramente basadas en fórmulas que veremos a continuación.
Sin VBA, la combinación LAMBDA + SEQUENCE + MAP o REDUCE replica un FOR puramente con fórmulas dinámicas en Excel 365/2021.
Dato clave