Unión VBA - Únase a múltiples rangos usando Excel VBA Union

Tabla de contenido

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, luego 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?

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, menciono 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

Step 8 - Now if I run the code colours of the union cells will be changed to Green colour.

Like this using Union method, we can create unison of two or more range of cells.

Example #2 - Use Variables to Store Range of Cells

All most all the coders use variables to store the reference of the range of cells. For example, look at the below code.

Code:

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

First, I have declared two variables as Range.

Dim Rng1 As Range

Dim Rng2 As Range

Then I have set the reference for these two variables.

Set Rng1 = Range(“A1:B5”)

Set Rng2 = Range(“B3:D5”)

Now variable rng1 holds the reference of Range(“A1:B5”) and the second variable rng2 holds the reference of Range(“B3:D5”).

Then I have applied UNION function to change the interior colour of these range of cells.

This also works exactly the same as the previous one, but using variable makes the code very flexible to use.

Error with Union Function

As I told all the references should be mandatory for the UNION method. For 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.

Esto se debe a que cualquiera que sea la variable que proporcionemos al argumento debe contener alguna referencia de las celdas en la hoja de trabajo en la que estamos trabajando.

Articulos interesantes...