Para entender mejor el desarrollo de esta pregunta es importante recordar algunos conceptos:
- Objeto (Object): Todo aquello que puede contener a más objetos.
Basándonos en este simple concepto se puede entender al objeto Range (“Range Object”) como un contenedor (rango) de celdas que pueden ser: celdas independientes, una o más filas, una o más columnas o rango de celdas/columnas/filas discontinuas.
Para usar range en la programación de VBA existen diversas formas, o mejor dicho diversas sintaxis, que se emplearán dependiendo de la tarea u objetivo que se tengan; a continuación se explica cómo usar range de acuerdo a cada escenario:
- Selección simple de una celda.- En este caso se busca seleccionar, dar formato, agregar un dato, etc., únicamente una celda determinada, para lo cual se empleará la siguiente sintaxis: Range (“A1”).
- Selección de una fila.- En este caso se busca seleccionar todas las celdas que se encuentran contenidas en una determinada fila, para esto se empleará la siguiente sintaxis: Range (“3:3”), lo cual indica que se seleccionará (y en algún caso agregará valores o se dará formato) a todas las celdas de la tercera fila.
- Selección de una columna.- Al igual que en el punto anterior el “range Object” nos permite también seleccionar y trabajar sobre todas las celdas de una columna en específico; por ejemplo para trabajar sobre las celdas de la columna C se empleará la siguiente sintaxis: Range (“C:C”).
- Selección de un rango con nombre.- Para llevar a cabo este punto es importante que antes de realizar la macro se seleccione un grupo de celdas y se le asigne un nombre (por ejemplo: “Muestra”), luego se empleará la siguiente sintaxis para seleccionar, dar valores o trabajar las celdas que lo contienen: Range (“Muestra”).
- Selección de rango por celdas.- En este caso se usará range para un conjunto de celdas, que a diferencia del punto anterior no posee un nombre. Es muy importante tener cuidado con la sintaxis debido a que un error hará que se trabaje como celdas discontinuas (como se verá en el siguiente punto); la sintaxis adecuada en este caso es la siguiente: Range (“B4”, “J15”) o Range (“B4:J15”).
- Selecciones discontinuas: Existe la posibilidad de llevar a cabo selecciones discontinuas tanto para celdas independientes, así como para filas y columnas diversas o grupos de celdas en específico; para estos casos se empleará la sintaxis siguiente:
- Filas discontinuas: Range (“2:5, 10:15”), en este caso se seleccionará las filas desde la 2 hasta la 5 y otro grupo desde la fila 10 a la 15.
- Columnas discontinuas: Range (“A:C, F:G”), con esto se seleccionarán las columnas desde la A hasta la C y también desde la F a la G con las cuales ya se podrá aplicar cualquier programación adicional.
- Celdas discontinuas: Range (“A2, F4, J8, M3”), de esta forma se seleccionarán únicamente las celdas que se especifican.
- Selección range con intersección.- Existe una sintaxis con la cual se buscará trabajar una determinada o determinadas celdas que representen la intersección entre dos rangos seleccionados: Range (“J1:K10” “H3:L3”), esta sintaxis es particular pues el espacio entre cada rango es lo que le indica al VBA que se trata de una intersección.
- Uso de objeto range para un propiedad range.- Para el presente caso se usa la sintaxis de range como base para el empleo de una propiedad también en condición range, a continuación la sintaxis: Range(“H3”).Range(“B3:D3”) = “Ejemplo”; analizando la sintaxis esta quiere decir que la celda H3 será considerada como la celda de partida para que se corra la macro respectiva, esto quiere decir que al correr la macro se escribirá en las celdas J3, K3 y L3 la palabra “Ejemplo”.
Importante:
- Para llevar a cabo las redacciones de la sintaxis empleando Range es vital siempre revisar que se empleen las comillas “”, de lo contrario el VBA nos indicará error.
- Existe, además del concepto Range, el concepto Cells; este concepto permite trabajar todas las situaciones anteriormente mencionadas solo se debe tener cuidado al momento de redactar la sintaxis debido a que se da de la siguiente forma: Cells (fila, columna). Cabe resaltar que el concepto de Cells será muy beneficioso cuando se trabajen bucles, iteraciones y otros, debido a que se empleará coordenadas “i” y “j”.
Descargar: Ejercicios de ejemplo
Por: Jorge Anibal León
20/10/2019 a las 8:41 am
Excelente Explicación. Saludos