¿Ya dominas lo básico? Un curso estructurado de VBA es la vía rápida para dar el salto.
Ver cursos de VBA en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (MsgBox)
- 03Declarar variables (Dim)
- 04Condicionales (la sentencia If)
- 05Repetir (la sentencia For)
- 06Repetir (la sentencia Do While)
- 07Escribir un procedimiento Sub
- 08Procedimientos Function (trabajo que devuelve un valor)
- 09Leer y escribir celdas (Range y Cells)
- 10Trabajar con arrays
- 11Trabajar con texto
- 12La sentencia With
- 13Variables de objeto y trabajo con hojas
- 14Recorrer elementos (For Each)
- 15Manejo de errores (On Error)
- 16La sentencia Select Case
- 17Argumentos (ByVal y ByRef)
- 18Trabajar con colecciones (Collection)
- 19Grabar macros y procedimientos de evento
- 20[Proyecto] Construye una hoja de inventario
Repetir (la sentencia For)
En esta lección repetirás un bloque de código un número determinado de veces.
For i = 1 To 5 ... Next i repite con el contador tomando cada valor del rango. Si hace falta avanzar de otra forma, se añade Step 2 para ir de dos en dos, o Step -1 para contar hacia atrás.
El código de ejemplo va acumulando los números en un texto y lo muestra al final.
Fíjate en que el rango incluye los dos extremos: 1 To 5 son cinco vueltas, no cuatro. Al recorrer un array declarado como Dim a(2), en cambio, los índices van de 0 a 2, así que se escribe For i = 0 To 2. Mezclar ambas costumbres es la fuente habitual de errores por uno.
Una advertencia de rendimiento propia de VBA: leer o escribir una celda dentro de un bucle es lentísimo, porque cada acceso cruza la frontera entre la macro y Excel. Un bucle de 10.000 celdas puede tardar minutos así, y segundos si se lee todo de golpe en un array, se calcula, y se escribe de una vez. Es la optimización que más se nota en macros reales.
🧪 Este sitio no puede compilar ni ejecutar VBA directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
🔗 El mismo tema en otros lenguajes
Mira cómo se escribe lo mismo en otro lenguaje.
