Rango variable de VBA - Ejemplos de rango variable en Excel VBA

Tabla de contenido

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. Daremos una guía completa sobre "Variable de rango" en excel VBA.

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

Como cualquier otra variable Rango 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 dar cualquier nombre a la variable, pero el tipo de datos que les asignamos debe ser un "Rango". Una vez que el tipo de datos se asigna 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

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, todo esto 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 pone 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 de manera simple, 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á algún tiempo, pero en su lugar 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 comenzar a usar las variables por su nombre, pero en el caso de "Variables de objeto", necesitamos establecer la referencia.

Por ejemplo, en este caso, nuestro objeto de variable (Rng) es un rango, por lo que necesitamos establecer la referencia a la palabra "Rng" a la que se va a referir. 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, 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 de objetos 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 células no afectará a esas células.

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 entender Dim LC As Long' LC = Última columna para entender 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 en 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

Ahora esto establecerá la última referencia a la variable de objeto de rango "Rng". A continuación, mencione el nombre de la variable y utilice el método "Seleccionar".

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) Rng.Select End Sub

Ahora agregaré algunas líneas más a mis datos.

He agregado tres líneas adicionales de datos. Si ejecuto el código ahora, debería seleccionar el último rango de datos.

Cosas para recordar

  • La variable de rango en Excel VBA es una variable de objeto.
  • Siempre que usemos la variable de objeto, necesitamos usar la palabra clave "Set" y establecer la referencia del objeto a la variable.
  • Sin establecer la referencia, no podemos usar una variable de objeto.

Articulos interesantes...