Unión VBA

Unión de Excel VBA

Union en VBA es similar a la union en otros lenguajes de programación, en VBA usamos union para combinar dos o más de dos rangos para realizar diferentes conjuntos de operaciones en ellos, la declaración utilizada para esto es en sí misma union y se llama como método de unión , por ejemplo, union (Range (B2: C7), Range (D2: E7)). select y este método seleccionará las celdas.

El método de unión realiza la tarea de crear una unión de dos o más rangos y devuelve el resultado como un objeto RANGE. Esto funciona exactamente igual que el siguiente ejemplo con el objeto VBA RANGE.

Sintaxis

Ahora eche un vistazo a la sintaxis del método UNION.

Necesitamos suministrar un mínimo de 2 rangos.

  • Arg 1: Este es el primer rango de celdas que necesitamos para crear la unión.
  • Arg 2: Este es el segundo rango de celdas que necesitamos para crear una unión.

Los primeros dos parámetros son obligatorios, después de mencionar dos rangos de celdas, todos los demás argumentos se vuelven opcionales.

Cuando los datos están dispersos en partes en celdas, necesitamos combinar todo el rango de datos en uno para realizar una tarea común. Podemos crear una unión de rango disperso a uno para realizar una tarea similar para todos los rangos de unión.

Para seleccionar múltiples rangos de celdas, generalmente podemos usar el objeto RANGE. Por ejemplo, si queremos seleccionar el rango de celdas de A1 a B5 y de B3 a D5, podemos escribir el código VBA como se muestra a continuación.

Código:

 Sub Union_Example1 () Union (Range ("A1: B5"), Range ("B3: D5")). Seleccione End Sub 

Esto seleccionaría el rango de celdas como la imagen de abajo.

Como podemos ver en la imagen de arriba, el primer rango se selecciona de A1 a B5 y el segundo rango se selecciona de B3 a D5.

Esta es la técnica común que todos hemos utilizado durante la codificación. Sin embargo, este no es el único método que tenemos para codificar en VBA, también podemos usar un método más llamado "unión" para crear una unión de dos o más rangos.

¿Cómo utilizar el método de unión VBA para unirse a varios rangos?

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

Ejemplo 1

Realicemos la misma toma que hicimos en el ejemplo anterior, pero esta vez usando el método UNION.

Paso 1 - Abra la función UNION en el subprocedimiento.

Código:

 Sub Union_Example1 () Union (End Sub 

Paso 2: menciona el primer rango de celdas usando el objeto RANGE. En este caso, menciono el primer rango de celdas como A1 a B5 .

Código:

 Sub Union_Example1 () Union (Range ("A1: A5"), End Sub 

Paso 3 - Ahora mencione el segundo rango de celdas usando el objeto RANGE, en este caso, estoy mencionando el rango de celdas como B3 a D5 .

Código:

 Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")) End Sub 

Paso 4: después de crear la unión de este rango de celdas, debemos decidir qué debemos hacer con este rango de unión de celdas. Ponga un punto (.) Para ver la lista de IntelliSense.

Código:

Sub Union_Example1 () Unión (Rango ("A1: A5"), Rango ("B3: B5")). End Sub

Paso 5: podemos ver todas las propiedades y métodos disponibles de estos rangos.

Para este ejemplo, cambiaré el color Interior de las celdas de unión. Para esto, primero necesito seleccionar la propiedad Interior.

Código:

 Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Interior End Sub 

Paso 6: con la propiedad interior, podemos hacer muchas cosas, pero como necesitamos cambiar el color de las celdas de unión, seleccionaré la propiedad Color.

Código:

 Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Interior.Color End Sub 

Paso 7: ahora necesitamos establecer la propiedad de color. Usaré una propiedad de índice de color incorporada como vbGreen.

Código:

 Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Interior.Color = vbGreen End Sub 

Paso 8: ahora, si ejecuto, los colores del código de las celdas de unión se cambiarán a color verde.

De esta manera, usando el método Union, podemos crear unísono de dos o más rangos de celdas.

Ejemplo n. ° 2: use variables para almacenar un rango de celdas

Casi todos los codificadores usan variables para almacenar la referencia del rango de celdas. Para ver un ejemplo, mire el siguiente código.

Código:

 Sub Union_Example2 () Dim Rng1 como rango Dim Rng2 como rango Establecer Rng1 = Rango ("A1: B5") Establecer Rng2 = Rango ("B3: D5") Unión (Rng1, Rng2) .Interior.Color = vbGreen End Sub 

Primero he declarado dos variables como Rango.

Dim Rng1 como rango

Dim Rng2 como rango

Luego establecí la referencia para estas dos variables.

Establecer Rng1 = Rango ("A1: B5")

Establecer Rng2 = Rango ("B3: D5")

Ahora la variable rng1 contiene la referencia de Rango ("A1: B5") y la segunda variable rng2 contiene la referencia de Rango ("B3: D5").

Luego apliqué la función UNION para cambiar el color interior de este rango de celdas.

Esto también funciona exactamente igual que el anterior, pero el uso de variables hace que el código sea muy flexible de usar.

Error con la función de unión

As I told all the references should be mandatory for the UNION method. For an example look at the below code.

Code:

 Sub Union_Example3() Dim Rng1 As Range Dim Rng2 As Range Dim Rng3 As Range Set Rng1 = Range("A1:B5") Set Rng2 = Range("B3:D5") Union(Rng1, Rng2, Rng3).Interior.Color = vbGreen End Sub 

This is similar to the previous but here I have declared one more variable as Range.

Dim Rng3 As Range

But I have not set the reference to this variable, rather I just supplied the variable to the UNION function.

Union(Rng1, Rng2, Rng3).Interior.Color = vbGreen

If I run this code we will get the error like the below.

This is because whatever the variable we supply to the argument should hold some reference of the cells in the worksheet we are working on.