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 sobre eles, 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 do qual precisamos criar a união.
  • Arg 2: Este é o segundo intervalo de células do qual precisamos criar uma união.

Os primeiros dois parâmetros são obrigatórios, depois de mencionar dois intervalos de células, 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?

Você pode baixar este modelo VBA Union Excel aqui - VBA Union Excel Template

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 

Etapa 4 - Depois de criar a união desses intervalos de células, precisamos decidir o que 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

Passo 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 alterar 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 

Passo 7 - Agora precisamos definir a propriedade color. Usarei uma propriedade de índice de cor integrada como vbGreen.

Código:

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

Passo 8 - Agora, se eu executar o código, as cores das células de união serão alteradas para a cor Verde.

Assim, usando o método Union, podemos criar um uníssono de dois ou mais intervalos de células.

Exemplo # 2 - Use variáveis ​​para armazenar intervalo de células

Quase todos os codificadores usam variáveis ​​para armazenar a referência do intervalo de células. Para obter um exemplo, veja o código abaixo.

Código:

 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 

Primeiro, declarei duas variáveis ​​como Range.

Dim Rng1 como intervalo

Dim Rng2 como intervalo

Em seguida, defini a referência para essas duas variáveis.

Definir Rng1 = intervalo (“A1: B5”)

Definir Rng2 = intervalo (“B3: D5”)

Agora a variável rng1 mantém a referência de Range (“A1: B5”) e a segunda variável rng2 mantém a referência de Range (“B3: D5”).

Em seguida, apliquei a função UNION para alterar a cor interna desse intervalo de células.

Isso também funciona exatamente da mesma forma que o anterior, mas o uso de variáveis ​​torna o código muito flexível de usar.

Erro com função de união

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.