Tema 4 : Referencias a celdas y rangos


Referenciar rangos en VBA



Una de las cosas que más útil resulta pero de la que he encontrado muy poca información es de cómo hacer referencias a celdas o rangos en VBA. Hay muchísimas maneras y cada una tiene su utilidad.


BREVE EXPLICACIÓN PARA HACER REFERENCIA A RANGOS EN VBA


La sintaxis para hacer referencia a rangos en VBA puede ser un poco compleja puesto que al grabar una macro siempre aparecerá de la misma manera, pero hay otras muchas muy interesantes.

Lo normal es usar el objeto Range o el objeto Cells. Estos objetos, como ya hemos visto en la jerarquía de VBA son un conjunto de celdas o una única celda que pertenecen a una hoja que a su vez pertenecen a un libro de Excel.

EJEMPLOS DE REFERENCIAS A RANGOS EN VBA


1. La forma más sencilla y básica
Range("B7")
2. Una forma más elaborada
Cells(7 , 2)
Donde el primer argumento se refiere a la fila y el segundo argumento a la columna

3. Usando una variable para la columna. Hay varias maneras. Supongamos que la variable es “iFila“.
Range ("B" & iFila)
Otra manera sería:
Cells(iFila , 2)
4. Usando variables tanto para fila como para columna. Ahora la variable columna será “iColumna“.
Cells(iFila ,iColumna)
Si queremos referenciar un rango compuesto de más de una celda las combinaciones de las anteriores serán las que nos permitan hacer nuestra referencia en función de lo que necesitemos (ejemplo para rango de B7 a C9).
5. Típica forma sencilla
Range("B7:C9")
6. Usando la variante Cells
Range(Cells(7 ,2),Cells(9,3))
7. Usando la variable iRow para la última fila del rango (en ocasiones no la conoceremos o será dinámica). Hay dos posibles maneras:
Range ("B7:C"&iFila)
Range(Cells(7 ,2),Cells(iFila, 3))

Crear un rango



Un rango, en Excel, puede ser una celda, o un conjunto de celdas.

Puede que nos interese crear un rango por muchos motivos, uno de los cuales será recorrer ciertas celdas en una variable.

Para crear un rango en VBA primero tendremos que declararlo y luego añadirle las propiedades.

Muy sencillo, declarar un rango se declara como:
 Dim MiRango as Range
Lo siguiente que tienes que hacer es decir de donde a donde va el rango, es decir, las celdas que abarca. Para ello habrá que declarar la celda de la esquina superior izquierda y la celda de la esquina inferior derecha.
EJEMPLO PARA CREAR UN RANGO EN VBA


En el siguiente ejemplo hemos creado un rango que va desde la primera fila y columna, es decir, la celda A1, hasta una fila y una columna que conocemos mediante variables.

Image crear un rango en vba


No hay comentarios:

Publicar un comentario