Rango variable de VBA

Variable de Excel VBA en rango

Las variables son el corazón y el alma de cualquier gran proyecto de VBA, ya que las variables son el corazón y el alma, entonces el tipo de tipo de datos que les asignamos también es un factor muy importante en ese sentido. En nuestros muchos artículos anteriores, hemos discutido muchas veces sobre las variables y la importancia de su tipo de datos. Una de esas variables y tipos de datos es "Variable de rango", en este artículo especial dedicado le daremos una guía completa sobre "Variable de rango" en Excel VBA.

¿Qué es la variable de rango en Excel VBA?

Como cualquier otro rango de variable en VBA, la variable también es una variable pero es una "Variable de objeto" que usamos para establecer la referencia del rango específico de celdas.

Como cualquier otra variable, podemos darle cualquier nombre a la variable, pero el tipo de datos que le asignamos debe ser un “Rango”. Una vez que el tipo de datos asignado a la variable se convierte en una “Variable de objeto” y, a diferencia de otra variable, no podemos comenzar a usar la variable antes de establecer la referencia de los objetos en el caso de las variables de objeto.

Entonces, después de declarar la variable, necesitamos usar la palabra clave "SET" para establecer la referencia del objeto, es decir, el objeto Range en este caso.

Ok, ahora veremos algunos de los ejemplos de Excel VBA Range Variables prácticamente.

Ejemplos de variable de rango en Excel VBA

Puede descargar esta plantilla de Excel de rango variable de VBA aquí - Plantilla de Excel de rango variable de VBA

Por ejemplo, suponga que desea seleccionar el rango de celdas de A2 a B10 para la siguiente imagen de captura de pantalla.

Para seleccionar este rango de celdas mencionado, todos estos mientras tenemos el objeto RANGE y dentro del objeto de rango, hemos mencionado la dirección de la celda entre comillas dobles.

Código:

 Sub Range_Variable_Example () Rango ("A2: B10") End Sub 

Una vez que se menciona el rango de celdas usando el objeto RANGE, si coloca un punto, veríamos todas las propiedades y métodos asociados con este objeto de rango.

Código:

Sub Range_Variable_Example () Rango ("A2: B10"). End Sub

Como necesitamos seleccionar las celdas mencionadas, simplemente elija el método "Seleccionar" de la lista de IntelliSense.

Código:

 Sub Range_Variable_Example () Range ("A2: B10"). Seleccione End Sub 

Ejecute el código y seleccionará las celdas mencionadas.

Esto es obvio, ¿no? Pero imagina el escenario de usar el mismo rango en el proyecto VBA largo, digamos cien veces, escribir el mismo código de "Rango (" A2: A10 ")" 100 veces llevará algo de tiempo, pero en cambio declararemos la variable y asignaremos el tipo de datos como objeto "Rango".

Bien, démosle su propio nombre a una variable y asignemos el tipo de datos como "Rango".

Aparte de "Variables de objeto", podemos empezar a utilizar las variables por su nombre, pero en el caso de "Variables de objeto", necesitamos establecer la referencia.

Por ejemplo, en este caso, nuestro objeto variable (Rng) es rango, por lo que debemos establecer la referencia a la que se referirá la palabra "Rng". Para establecer la referencia necesitamos usar la palabra clave "Establecer".

Ahora la variable “Rng” se refiere al rango de celdas de A2 a B10, en lugar de escribir “Rango (“ A2: B10 ”))” cada vez que simplemente podemos escribir la palabra “Rng” .

En la siguiente línea mencione el nombre de la variable "Rng" y ponga un punto para ver la magia.

Como puede ver arriba, podemos ver todas las propiedades y métodos del objeto de rango como el anterior.

Hacer que la variable sea dinámica

Ahora sabemos cómo establecer la referencia al rango de celdas, pero una vez que mencionamos el rango de celdas, se adhiere solo a esas celdas, cualquier adición o eliminación de celdas no afectará a esas celdas.

Entonces, encontrar el nuevo rango de celdas después de cualquier adición o eliminación de celdas hace que la variable sea de naturaleza dinámica. Esto es posible encontrando la última fila y columna utilizada.

Para encontrar la última fila y columna utilizada, necesitamos definir dos variables más.

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última fila para comprender Dim LC As Long' LC = Última columna para comprender End Sub 

Ahora, debajo del código, encontrará la última fila y columna utilizada antes de establecer la referencia a una variable de objeto de rango.

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última fila para entender Dim LC As Long' LC = Última columna para entender LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column End Sub 

Ahora abra la declaración de palabras clave "Establecer".

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última fila para entender Dim LC As Long' LC = Última columna para entender LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = End Sub 

A diferencia del método anterior, esta vez usamos las propiedades de VBA CELLS.

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última fila para entender Dim LC As Long' LC = Última columna para entender LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) End Sub 

He mencionado Cells (1,1), es decir, esto se refiere a la primera celda de la hoja activa, pero necesitamos la referencia del rango de datos, así que use la propiedad "RESIZE" y mencione las variables de "última fila y columna usada".

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última fila para entender Dim LC As Long' LC = Última columna para entender LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) .Resize (LR, LC) End Sub 

Now this will set the latest reference to the range object variable “Rng”. Next, mention the variable name and use the “Select” method.

 Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = Cells(1, 1).Resize(LR, LC) Rng.Select End Sub 

Now I will add a few more lines to my data.

I have added three extra lines of data if I run the code now it should select the latest data range.

Things to Remember

  • The range variable in excel VBA is an object variable.
  • Whenever we use the object variable we need to use the “Set” keyword and set the object reference to the variable.
  • Without setting the reference we cannot use an object variable.