Conjunto Excel VBA

"Establecer", es una palabra clave utilizada en la programación de VBA para asignar una referencia a un objeto o rango de celdas que permanecerá fijo en todo el programa o código en Excel. VBA Set básicamente nos ayuda a evitar la entrada repetitiva del rango que necesitamos seleccionar al ejecutar el código. En Excel, "Set" se aplica principalmente en hojas de trabajo / rango de celdas en una hoja en particular.

Sintaxis:

Establecer nombre-objeto / variable = Objeto / Rango

Nota: debe tener la pestaña Desarrollador en la hoja de cálculo de Excel.

Si no ve la pestaña "Desarrollador" en Excel, consulte los pasos a continuación:

Paso 1: haz clic en la opción Archivo .

Paso 2: aparece el menú desplegable, haga clic en la pestaña Opciones .

Paso 3: Una vez que haga clic en "Opciones", aparecerá un cuadro de diálogo como se muestra a continuación y haga clic en la opción Personalizar cinta de opciones.

Paso 4: Cuando arrastremos hacia abajo en las opciones de personalización de la cinta de opciones, encontraremos una opción para Desarrollador que necesitamos marcar esa casilla que nos permitirá usar VBA en Excel.

¿Cómo utilizar una palabra clave establecida en VBA?

A continuación se muestran los diferentes ejemplos para usar la palabra clave set en Excel VBA.

Puede descargar esta plantilla de Excel de VBA aquí - Plantilla de Excel de VBA Set

Conjunto Excel VBA - Ejemplo # 1

Tomaremos un ejemplo simple de una palabra clave Set en Excel VBA. Supongamos que nos gustaría seleccionar un rango y establecerlo como rango fijo para evitar la repetición. A continuación se muestra el rango de celdas que contiene los nombres:

Siga los pasos a continuación para usar la palabra clave set en Excel VBA:

Paso 1: haga clic en la pestaña "Desarrollador" y luego haga clic en la opción "Visual Basic" en el lado izquierdo (primera opción) como se muestra a continuación.

Una vez que hace clic en él, aparece una nueva ventana como se muestra a continuación:

Notará que contiene dos pestañas en el lado izquierdo, “Hoja1 (Hoja1)” y “Este libro de trabajo”. La única diferencia es “Hoja1” cuando desea ejecutar código solo para esta hoja en particular y en “Este libro de trabajo”, podemos escribir un código y ejecutarlo que se puede aplicar a todo el libro de Excel.

Paso 2: Haga doble clic en “Hoja1 (Hoja1) y verá una pantalla en blanco donde necesitamos escribir el código. Primero, declare un subconjunto como Subnombre y presione Entrar y verá un subconjunto creado como se muestra a continuación:

Código:

 Sub setexmp () End Sub 

Esta es la forma en que creamos un subconjunto y automáticamente aparece "End Sub". Esta es la característica predeterminada de Excel. Si "End Sub" no aparece, el código no se ejecutará y arrojará un error.

Paso 3: Ahora, declararemos las variables que se utilizarán en el código.

Escriba el nombre de la variable Dim y el tipo de variable. Aquí, el nombre será como la identidad del rango y el tipo sería ya sea Integer, Long, String, Range, etc.

Código:

 Subsetexmp () Dim Rnst As Range End Sub 

Aquí "Rnst" es un nombre de variable y asígnelo (As) como función Range. Esto alertará al sistema de que se haría una selección de rango.

Paso 4: Luego escriba la palabra clave "Establecer" y asigne un rango usando el formato: Establecer variable = Rango ("rango de celdas") .

Código:

 Subsetexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") End Sub 

Paso 5: Tenemos que seleccionar este rango de filas especificado. Por lo tanto, escriba select como Rnst.Select Refiera la captura de pantalla a continuación:

Código:

 Subsetexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select End Sub 

Paso 6: Ejecute el código presionando F5 o el botón Ejecutar y vea la salida.

Seleccionará el Rango especificado que es de las celdas A2 a A11.

Conjunto de Excel VBA - Ejemplo # 2

Supongamos que queremos pegar estas celdas o rango en otra celda. Usaremos el mismo código que el anterior y agregaremos código para pegar esos datos en varias columnas.

Siga los pasos a continuación:

Paso 1: Ahora copiaremos el rango de celdas que es la columna de nombre. Escriba copy, es decir, "Rnst.Copy", cuando escriba "Rnst" aparecerá una especie de menú desplegable. Contiene varias funciones como copiar, pegar, etc.

Paso 2: puede desplazarse hacia abajo y seleccionar la función deseada que desea realizar. Aquí simplemente escriba "Copiar" como se muestra en la captura de pantalla a continuación:

Código:

 Subsetexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select Rnst.Copy End Sub 

Paso 3: compile el código presionando la tecla F8.

Una vez que ejecute esta función de copia, verá que en Excel se copia el rango y aparecen líneas punteadas alrededor del rango de celdas como se muestra a continuación:

Paso 4: Ahora, necesitamos pegar estas celdas, digamos en columnas adyacentes una por una, por lo que necesitamos usar una función de bucle "For" y supongamos 5 veces que necesitamos pegar, así que la escribiremos como se muestra a continuación:

Para Integer i = 1 a 5 -> esto especifica cuántas veces necesitamos pegar los datos. Si es 5, entonces 1 a 5 más, lo que prefiera.

Código:

 Subsetexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select Rnst.Copy For i = 1 To 5 End Sub 

Paso 5: Seleccione una celda en la que desea pegar este rango de celdas. Supongamos que queremos comenzar a pegar desde la columna B2 y luego pegar los datos debería ser dinámico, es decir, debería seleccionar automáticamente las columnas adyacentes una por una sin superponerse. Por lo tanto, la sintaxis sería "Celda (número de fila, número de columna) .PasteSpecial".

Celdas (2, i + 1) .PasteSpecial, Aquí, 2-> representa el número de fila y, i + 1 -> representa el número de columna. i + 1 significa que el primer valor de I declaró en el ciclo "For" es i = 1, por lo tanto, el valor de la columna se convertirá en 2, especifica que comenzará a pegarse desde la columna B. Y a medida que el valor de i aumente, seguirá seleccionando columnas adyacentes uno a uno.

Código:

 Subsetexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select Rnst.Copy For i = 1 To 5 Cells (2, i + 1) .PasteSpecial xlValues ​​End Sub 

Paso 6: Escriba " Siguiente i ", lo que significa que está aumentando el valor de "i" uno por uno para que el pegado de la columna permanezca dinámico.

Código:

 Subsetexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select Rnst.Copy For i = 1 To 5 Cells (2, i + 1) .PasteSpecial xlValues ​​Next i End Sub 

Paso 7: Presione "F8" para ver el código ejecutar línea por línea y le mostrará el pegado de la celda en columnas adyacentes una por una.

Aquí puede ver que el valor de i es 1 y los datos se han pegado en la columna B según lo deseado.

Paso 8: Ahora, cuando presione "F8" nuevamente, verá que ahora el valor de i es 2. Por lo tanto, 2 + 1 se convertirá en 3 y los datos se pegarán en la celda (2, 3), es decir, el valor de la fila es el mismo, pero la columna número de cambios como se muestra en la siguiente captura de pantalla:

Después de completar el ciclo completo, verá los datos pegados 5 veces, es decir, desde el recuento 1 al 5, comenzando a pegarse desde la columna B hasta la columna F como se muestra a continuación:

Conjunto Excel VBA - Ejemplo # 3

Supongamos que nos gustaría mostrar un recuento del número de celdas en ese rango en un cuadro de mensaje que aparece al hacer clic en un botón. Tomaremos los mismos datos que se muestran a continuación.

Además, ejecutaremos el código de este ejemplo en la nueva hoja. Por lo tanto, agregue una nueva hoja y en la ventana de VBA aparecerá como se muestra a continuación:

Tendremos que insertar una opción de botón de comando. Es una característica de Excel, así que siga los pasos a continuación:

Paso 1: Ingrese un nombre de subconjunto que diga "Setcount ()" como se muestra en la siguiente captura de pantalla:

Código:

 Sub Setcount () End Sub 

Paso 2: Declare la misma variable "Rnct" como un rango en el subconjunto como se muestra en la siguiente captura de pantalla:

Código:

 Sub Setcount () Dim Rnct As Range End Sub 

Paso 3: Luego escriba la palabra clave "Establecer" y asigne un rango.

Código:

 Sub Setcount () Dim Rnct As Range Set Rnct = Range ("A2: A11") End Sub 

Paso 4: Ahora, después de corregir el rango, necesitamos ver un cuadro emergente o un cuadro de diálogo que muestre el recuento de celdas en el rango. Por lo tanto, utilice la función "MsgBox", que en la ejecución aparecerá un recuento en el cuadro de diálogo. Escriba "MsgBox variable name.count". En el momento después de escribir el nombre de la variable, luego punto (.) Aparece un menú desplegable que contiene varias funciones y seleccionamos "contar" o escribir manualmente "contar".

Escriba "MsgBox Rnct.count" y luego de la ejecución, aparecerá count.

Paso 5: Ahora, queremos insertar un botón de comando y al hacer clic, en ese botón debe aparecer ese cuadro de mensaje.

Haga clic en "Insertar" en la pestaña "Desarrollador" como se resalta en el cuadro rojo y verá un menú desplegable de la categoría "Controles de formulario". Haga clic en la primera forma de caja rectangular que tendremos que dibujar e insertar manualmente en la hoja de Excel:

Paso 6: Al hacer clic en el cuadro rectangular, dibuje e inserte el cuadro en la hoja y una vez que comience a dibujar, aparecerá un cuadro de diálogo como se muestra a continuación. Es un botón de ventana "Asignar macro" y selecciona la macro del subconjunto "Setcount". Haga clic en "Aceptar".

Esto significa que hemos asignado macro de conteo a este botón. Y al hacer clic, se ejecutará.

Paso 7: aparecerá como se muestra a continuación en Excel.

Paso 8: haga clic derecho sobre él y cámbiele el nombre usando la opción " Editar texto " como se muestra a continuación:

Paso 9: asígnele un nombre como "COUNT" y lo verá en Excel como count como se muestra a continuación.

Paso 10: Luego haga clic en el botón "CONTEO": una vez que haga clic en el botón "CONTEO" aparecerá un cuadro de mensaje como se muestra a continuación:

Como podemos ver, hay 10 nombres y hemos mostrado el número correcto del rango A2 a A11.

Cosas para recordar

  • Asegúrese de tener la pestaña "Desarrollador" insertada en las cintas de Excel para ejecutar estos códigos VBA.
  • 'Conjunto' se aplica principalmente en hojas de trabajo / rango de celdas en una hoja en particular.

Artículos recomendados

Esta es una guía para VBA Set. Aquí discutimos cómo asignar una referencia a un objeto o rango de celdas usando Excel VBA Set Keyword junto con ejemplos prácticos y plantilla de Excel descargable. A continuación se presentan algunos artículos útiles de Excel relacionados con VBA:

  1. Función de concatenación de VBA
  2. Tutoriales sobre conjuntos de iconos de Excel
  3. Trabajando con celdas de rango en VBA
  4. Resolver ecuaciones en Excel

Categoría: