¿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
Variables de objeto y trabajo con hojas
En esta lección guardarás una hoja en una variable para trabajar con ella de forma explícita.
Las variables que apuntan a objetos se declaran con su tipo (Dim ws As Worksheet) y se asignan con Set, no con un simple =.
El código de ejemplo guarda una hoja, escribe en su celda A1 y muestra el nombre de la hoja junto al valor.
Ese Set es obligatorio y su ausencia da el error «Se requiere un objeto», que no explica gran cosa. La regla es sencilla: si lo que asignas es un objeto (hoja, libro, rango), lleva Set; si es un valor (número, texto), no.
Trabajar así resuelve el problema de la hoja activa que se mencionaba antes: una vez que ws apunta a la hoja correcta, todo lo que hagas a través de ella va donde debe, sin importar dónde tenga el usuario el cursor. En macros que se pasan a otras personas, esto es la diferencia entre algo fiable y algo que estropea datos.
🧪 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).
