¿cómo usar una celda como variable en vba?
Para utilizar un rango o una sola celda como variable, primero debe declarar esa variable con el tipo de datos de rango. Una vez que haya hecho eso, debe especificar un rango desde una celda hasta esta variable usando el objeto de rango. Esto también le brinda acceso a todas las propiedades y métodos que puede usar con un rango.
- Utilice la palabra clave «Dim» e ingrese el nombre de la variable.
- Declare la palabra clave como Range .
- Escriba el nombre de la variable.
- Especifique el rango que desea asignar a la variable.
Establecer la selección en variable de rango
También puede usar el rango seleccionado para una variable y luego usar esa variable para acceder a propiedades y métodos. Considere el siguiente código.
Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub
Pero hay una cosa con la que debes tener cuidado: cuando seleccionas un objeto que no sea un rango, VBA te mostrará un error.
Pero también es un método dinámico en el que no es necesario cambiar el rango una y otra vez.
Copiar un rango usando una variable
Una vez que declara una variable como un rango, también puede copiar ese rango usando el nombre de esa variable. Supongamos que ha declarado el rango A1:A10 como variable rng (ejemplo anterior), puede copiarlo usando el siguiente código.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub
Usando la variable de rango en una función
También puede utilizar una variable de rango para hacer referencia a un rango en una función al escribir una macro. Considere el siguiente código.
Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub
Toma valores en el rango A1:A10 y como necesita usar la variable «rng», usamos la variable en el valor máximo para generarla.
Relacionado: Cómo utilizar la función de hoja de trabajo en VBA
Cuente el número de filas y columnas.
Como dije antes, una vez que especificas una variable como rango, también obtendrás todas las propiedades y métodos de acceso. Imagínese si quisiera contar filas y columnas. Aquí está el código que podría usarse.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub
Cuando ejecuta este código, muestra un mensaje con el número de filas y columnas en el rango que especificó en la variable.
Definición de hoja de trabajo con rango
En todos los ejemplos anteriores, usamos el rango sin mencionar la hoja de trabajo, por lo que cuando ejecute este código, VBA siempre hará referencia al rango en la hoja activa. Pero si desea hacer referencia a una hoja de trabajo específica, debe usar el objeto de la hoja de trabajo con el rango.
Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")