VBA Union - Unisci più intervalli utilizzando l'unione VBA di Excel

Unione VBA di Excel

L'unione in VBA è simile all'unione in altri linguaggi di programmazione, in VBA usiamo union per combinare due o più di due intervalli per eseguire diversi set di operazioni su di essi, l'istruzione utilizzata per questo è essa stessa union ed è chiamata metodo di unione , ad esempio, union (Range (B2: C7), Range (D2: E7)). seleziona e questo metodo selezionerà le celle.

Il metodo Union esegue l'attività di creare un'unione di due o più intervalli e restituisce il risultato come oggetto RANGE. Funziona esattamente come nell'esempio seguente con l'oggetto VBA RANGE.

Sintassi

Ora dai un'occhiata alla sintassi del metodo UNION.

Dobbiamo fornire un minimo di 2 intervalli.

  • Arg 1: questo è il primo intervallo di celle di cui abbiamo bisogno per creare l'unione.
  • Arg 2: questo è il secondo intervallo di celle di cui dobbiamo creare un'unione.

I primi due parametri sono obbligatori, dopo aver menzionato due intervalli di celle, tutti gli altri argomenti diventano opzionali.

Quando i dati sono sparsi in pezzi nelle celle, è necessario combinare tutto l'intervallo di dati in uno per eseguire un'attività comune. Possiamo creare un'unione di intervallo sparso a uno per eseguire un'attività simile per tutti gli intervalli di unione.

Per selezionare più intervalli di celle, di solito possiamo utilizzare l'oggetto RANGE. Ad esempio, se vogliamo selezionare l'intervallo di celle da A1 a B5 e da B3 a D5, possiamo scrivere il codice VBA come di seguito.

Codice:

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

Questo selezionerebbe l'intervallo di celle come l'immagine sotto.

Come possiamo vedere nell'immagine sopra, il primo intervallo è selezionato da A1 a B5 e il secondo intervallo è selezionato da B3 a D5.

Questa è la tecnica comune che tutti abbiamo usato durante la codifica. Tuttavia, questo non è l'unico metodo che abbiamo nella codifica in VBA; possiamo anche usare un altro metodo chiamato "unione" per creare un'unione di due o più intervalli.

Come utilizzare il metodo di unione VBA per unirsi a più intervalli?

Esempio 1

Eseguiamo la stessa ripresa dell'esempio precedente, ma questa volta utilizzando il metodo UNION.

Passaggio 1: aprire la funzione UNION nella sottoprocedura.

Codice:

Sub Union_Example1 () Union (End Sub

Passaggio 2: menziona il primo intervallo di celle utilizzando l'oggetto RANGE. In questo caso, sto menzionando il primo intervallo di celle da A1 a B5 .

Codice:

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

Passaggio 3 - Ora menziona il secondo intervallo di celle usando l'oggetto RANGE, in questo caso, sto menzionando l'intervallo di celle da B3 a D5 .

Codice:

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

Passaggio 4: dopo aver creato l'unione di questo intervallo di celle, dobbiamo decidere cosa fare con questo intervallo di unione di celle. Inserisci il punto (.) Per visualizzare l'elenco IntelliSense.

Codice:

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

Passaggio 5: possiamo vedere tutte le proprietà e i metodi disponibili di questi intervalli.

Per questo esempio, cambierò il colore interno delle celle di unione. Per questo devo prima selezionare la proprietà Interior.

Codice:

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

Passaggio 6 - Con la proprietà interna, possiamo fare molte cose, ma poiché dobbiamo cambiare il colore delle celle di unione, selezionerò la proprietà Colore.

Codice:

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

Passaggio 7: ora dobbiamo impostare la proprietà del colore. Userò una proprietà dell'indice di colore incorporata come vbGreen.

Codice:

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.

Questo perché qualunque sia la variabile che forniamo all'argomento dovrebbe contenere un riferimento alle celle nel foglio di lavoro su cui stiamo lavorando.

Articoli interessanti...