VBA Union - Junte-se a vários intervalos usando Excel VBA Union

Excel VBA Union

A união no VBA é semelhante à união em outras linguagens de programação, no VBA usamos união para combinar dois ou mais de dois intervalos para realizar diferentes conjuntos de operações neles, a instrução usada para isso é a própria união e é chamada de método de união , por exemplo, união (Faixa (B2: C7), Faixa (D2: E7)). selecione e este método irá selecionar as células.

O método Union executa a tarefa de criar uma união de dois ou mais intervalos e retorna o resultado como um objeto RANGE. Isso funciona exatamente da mesma forma que o exemplo abaixo com o objeto VBA RANGE.

Sintaxe

Agora dê uma olhada na sintaxe do método UNION.

Precisamos fornecer um mínimo de 2 intervalos.

  • Arg 1: Este é o primeiro intervalo de células de que precisamos criar a união.
  • Arg 2: Este é o segundo intervalo de células do qual precisamos criar uma união.

Os dois primeiros parâmetros são obrigatórios, depois de mencionar dois intervalos de células, então todos os outros argumentos se tornam opcionais.

Quando os dados estão espalhados em pedaços nas células, precisamos combinar todos os intervalos de dados em um para realizar uma tarefa comum. Podemos criar uma união de intervalo espalhado para um para realizar uma tarefa semelhante para todos os intervalos de união.

Para selecionar vários intervalos de células, geralmente podemos usar o objeto RANGE. Por exemplo, se quisermos selecionar o intervalo de células de A1 a B5 e de B3 a D5, podemos escrever o código VBA como abaixo.

Código:

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

Isso selecionaria o intervalo de células como a imagem abaixo.

Como podemos ver na imagem acima, o primeiro intervalo é selecionado de A1 a B5, e o segundo intervalo é selecionado de B3 a D5.

Esta é a técnica comum que todos nós usamos durante a codificação. No entanto, este não é o único método que temos na codificação em VBA; também podemos usar mais um método chamado “união” para criar uma união de dois ou mais intervalos.

Como usar o método VBA Union para juntar vários intervalos?

Exemplo 1

Vamos realizar a mesma tomada que fizemos no exemplo acima, mas desta vez usando o método UNION.

Passo 1 - Abra a função UNION no subprocedimento.

Código:

Sub Union_Example1 () Union (End Sub

Etapa 2 - Mencione o primeiro intervalo de células usando o objeto RANGE. Neste caso, estou mencionando o primeiro intervalo de células como A1 a B5 .

Código:

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

Passo 3 - Agora mencione o segundo intervalo de células usando o objeto RANGE, neste caso, estou mencionando o intervalo de células como B3 a D5 .

Código:

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

Passo 4 - Depois de criar a união desses intervalos de células, precisamos decidir o que precisamos fazer com esse intervalo de união de células. Coloque um ponto (.) Para ver a lista do IntelliSense.

Código:

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

Etapa 5 - Podemos ver todas as propriedades e métodos disponíveis para esses intervalos.

Para este exemplo, vou mudar a cor Interior das células de união. Para isso, primeiro preciso selecionar a propriedade Interior.

Código:

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

Passo 6 - Com a propriedade interior, podemos fazer muitas coisas, mas como precisamos mudar a cor das células de união, selecionarei a propriedade Color.

Código:

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

Etapa 7 - Agora, precisamos definir a propriedade color. Usarei uma propriedade de índice de cor embutida 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.

Isso ocorre porque qualquer que seja a variável fornecida para o argumento deve conter alguma referência das células na planilha em que estamos trabalhando.

Artigos interessantes...