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 TemplateExemplo 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.