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.

Este post puede servirte para cuando grabes una macro poder modificarla a tu antojo con muy pocos cambios.

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))

8. Hay más maneras de referenciar rangos pero no tiene una gran utilidad. Ésos ejemplos se basan en los conceptos que se han explicado unas líneas atrás. Quizás, algún lector eche en falta alguna forma de referenciar celdas, si es así, que lo haga saber y sin problemas será añadido. Si quieres saber más haz click en el siguiente enlace:

Referenciar rangos parte II

BONUS TRACK: Ejercicio para hacer referencias a rangos en VBA

Ejercicio 1:  asignar a la celda que está en la columna 3 y la fila 2 el valor de “5”.

Cells(2,3)=5

Ejercicio 2: la variable fil=10 y la variable col=5. Dimensionar las variables y usarlas como fila y columna respectivamente para seleccionar la celda a la que apunten.

Dim fil, col as Integer
Cells(fil, col).Select
(Visited 120.547 times, 1 visits today)
Categorías VBA

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información ACEPTAR

Aviso de cookies