¿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
Leer y escribir celdas (Range y Cells)
En esta lección leerás y escribirás el contenido de una celda, que es la razón de ser de VBA.
Range("A1").Value accede al valor de una celda por su nombre. La alternativa es Cells(fila, columna), con números: Cells(1, 1) es la misma celda A1.
El código de ejemplo escribe un número en A1 y luego lo vuelve a leer para mostrarlo.
Cuál usar depende de la situación: Range se lee mejor cuando la celda es fija, y Cells es el que sirve dentro de un bucle, porque acepta variables (Cells(i, 1)). En código real se ven los dos, a menudo en el mismo procedimiento.
El punto delicado es que Range("A1") se refiere a la hoja activa en ese momento. Si el usuario tenía otra hoja abierta al lanzar la macro, escribe en el sitio equivocado. Por eso, en cuanto la macro pasa de ser un experimento, conviene indicar siempre la hoja: Worksheets("Hoja1").Range("A1"), que es lo que verás en la lección sobre hojas.
🧪 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).
