Únia VBA - Pripojte sa k viacerým rozsahom pomocou únie Excel VBA

Excel VBA Union

Spojenie vo VBA je podobné spojeniu v iných programovacích jazykoch, vo VBA používame spojenie na kombináciu dvoch alebo viac ako dvoch rozsahov, aby sme na nich mohli vykonávať rôzne množiny operácií, príkaz, ktorý sa na to používa, je sám spojením a nazýva sa ako metóda spojenia. , napríklad union (Range (B2: C7), Range (D2: E7)). select a táto metóda vyberie bunky.

Metóda union vykonáva úlohu vytvorenia spojenia dvoch alebo viacerých rozsahov a vráti výsledok ako objekt RANGE. To funguje úplne rovnako ako v nasledujúcom príklade s objektom VBA RANGE.

Syntax

Teraz sa pozrite na syntax metódy UNION.

Musíme dodať minimálne 2 rozsahy.

  • Arg 1: Toto je prvý rad buniek, ktoré potrebujeme na vytvorenie spojenia.
  • Arg 2: Toto je druhá škála buniek, ktorú potrebujeme na vytvorenie únie.

Prvé dva parametre sú povinné, po spomenutí dvoch rozsahov buniek sa všetky ostatné argumenty stávajú voliteľnými.

Keď sú údaje v bunkách rozptýlené po kúskoch, musíme na vykonanie spoločnej úlohy spojiť dohromady celý rozsah údajov do jedného. Môžeme vytvoriť zjednotenie rozptýleného rozsahu na jeden, aby sme mohli vykonať podobnú úlohu pre všetky rozsahy zjednotenia.

Na výber viacerých rozsahov buniek môžeme zvyčajne použiť RANGE objekt. Napríklad, ak chceme zvoliť rozsah buniek od A1 do B5 a od B3 do D5, môžeme napísať kód VBA, ako je uvedené nižšie.

Kód:

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

Týmto by sa vybral rozsah buniek, ako je obrázok nižšie.

Ako vidíme na obrázku vyššie, prvý rozsah je vybraný od A1 do B5 a druhý rozsah je vybraný od B3 do D5.

Toto je bežná technika, ktorú sme všetci používali pri kódovaní. Nie je to však jediná metóda, ktorú máme pri kódovaní vo VBA; môžeme tiež použiť jednu ďalšiu metódu nazvanú „union“ na vytvorenie spojenia dvoch alebo viacerých rozsahov.

Ako používať metódu VBA Union na pripojenie viacerých rozsahov?

Príklad č

Urobme to isté ako v predchádzajúcom príklade, tentokrát však pomocou metódy UNION.

Krok 1 - V podprocese otvorte funkciu UNION.

Kód:

Sub Union_Example1 () Union (End Sub

Krok 2 - Uveďte prvý rozsah buniek pomocou objektu RANGE. V tomto prípade uvádzam prvý rad buniek ako A1 až B5 .

Kód:

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

Krok 3 - Teraz uveďte druhý rozsah buniek využívajúcich objekt RANGE, v tomto prípade uvádzam rozsah buniek ako B3 až D5 .

Kód:

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

Krok 4 - Po vytvorení spojenia tohto rozsahu buniek sa musíme rozhodnúť, čo musíme urobiť s týmto spojením rozsahu buniek. Ak chcete zobraziť zoznam IntelliSense, vložte bodku (.) .

Kód:

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

Krok 5 - Môžeme vidieť všetky dostupné vlastnosti a metódy týchto rozsahov.

Pre tento príklad zmením farbu interiéru spojovacích buniek. Z tohto dôvodu musím najskôr zvoliť vlastnosť Interiér.

Kód:

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

Krok 6 - S vlastnosťou interiéru môžeme robiť veľa vecí, ale keďže potrebujeme zmeniť farbu spojovacích buniek, vyberiem vlastnosť Farba.

Kód:

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

Krok 7 - Teraz musíme nastaviť vlastnosť color. Budem používať vstavanú vlastnosť indexu farieb ako vbGreen.

Kód:

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.

Je to tak preto, že akákoľvek premenná, ktorú do argumentu dodáme, by mala obsahovať nejaký odkaz na bunky v pracovnom hárku, na ktorom pracujeme.

Zaujímavé články...