VBA Union - Pridružite se več območjem z uporabo programa Excel VBA Union

Excel VBA Union

Unija v VBA je podobna uniji v drugih programskih jezikih, v VBA uporabljamo unijo, da združimo dva ali več kot dva obsega za izvajanje različnih nizov operacij nad njimi, izjava, ki se uporablja za to, je sama unija in se imenuje kot metoda unije na primer zveza (obseg (B2: C7), obseg (D2: E7)). izberite in ta metoda bo izbrala celice.

Metoda Union izvaja nalogo ustvarjanja zveze dveh ali več obsegov in rezultat vrne kot objekt RANGE. To deluje popolnoma enako kot spodnji primer z objektom VBA RANGE.

Sintaksa

Zdaj pa si oglejte sintakso metode UNION.

Dobaviti moramo najmanj 2 obsega.

  • Arg. 1: To je prvi obseg celic, ki jih moramo ustvariti.
  • Arg. 2: To je drugi obseg celic, iz katerih moramo ustvariti zvezo.

Prva dva parametra sta obvezna, po omembi dveh obsegov celic potem vsi drugi argumenti postanejo neobvezni.

Ko so podatki razpršeni po kosih v celicah, moramo za izvajanje skupne naloge združiti ves obseg podatkov v enega. Ustvarimo lahko zvezo razpršenega obsega z eno, da izvedemo podobno nalogo za vse obsege zveze.

Za izbiro več obsegov celic lahko običajno uporabimo objekt RANGE. Če želimo na primer izbrati obseg celic od A1 do B5 in od B3 do D5, lahko napišemo kodo VBA kot spodaj.

Koda:

Sub Union_Example1 () Union (obseg ("A1: B5"), obseg ("B3: D5")). Izberite End Sub

S tem bi izbrali obseg celic, kot je spodnja slika.

Kot lahko vidimo na zgornji sliki, je prvo območje izbrano od A1 do B5, drugo območje pa od B3 do D5.

To je običajna tehnika, ki smo jo vsi uporabljali med kodiranjem. Vendar to ni edina metoda, ki jo imamo pri kodiranju v VBA; lahko uporabimo tudi še eno metodo, imenovano "zveza", da ustvarimo zvezo dveh ali več obsegov.

Kako uporabiti metodo VBA Union za pridružitev več območjem?

Primer # 1

Izvedimo isti vzorec kot v zgornjem primeru, vendar tokrat z uporabo metode UNION.

1. korak - Odprite funkcijo UNION v podpostopku.

Koda:

Sub Union_Example1 () Union (End Sub

2. korak - Omenite prvi obseg celic z uporabo predmeta RANGE. V tem primeru omenjam prvi obseg celic kot A1 do B5 .

Koda:

Sub Union_Example1 () Union (Obseg ("A1: A5"), Konec Sub

3. korak - Zdaj omenite drugi obseg celic, ki uporabljajo objekt RANGE, v tem primeru omenjam obseg celic kot B3 do D5 .

Koda:

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

4. korak - Po ustvarjanju združitve tega obsega celic se moramo odločiti, kaj moramo storiti s tem združenjem celic. Postavite piko (.), Da se prikaže seznam IntelliSense.

Koda:

Sub Union_Example1 () Union (obseg ("A1: A5"), obseg ("B3: B5")). Končaj pod

5. korak - Vidimo lahko vse razpoložljive lastnosti in metode teh obsegov.

V tem primeru bom spremenil notranjo barvo celic zveze. Za to moram najprej izbrati lastnost Notranjost.

Koda:

Sub Union_Example1 () Union (obseg ("A1: A5"), obseg ("B3: B5")). Notranjost Sub Sub

6. korak - Z lastnostjo notranjosti lahko naredimo marsikaj, a ker moramo spremeniti barvo celic zveze, bom izbral lastnost Barva.

Koda:

Sub Union_Example1 () Union (obseg ("A1: A5"), obseg ("B3: B5")). Notranjost.

7. korak - Zdaj moramo nastaviti barvno lastnost. Uporabil bom vgrajeno lastnost barvnega indeksa kot vbGreen.

Koda:

Sub Union_Example1 () Union (obseg ("A1: A5"), obseg ("B3: B5")). Notranjost.Barva = 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.

To je zato, ker ne glede na spremenljivko, ki jo dostavljamo argumentu, vsebuje sklic na celice v delovnem listu, na katerem delamo.

Zanimive Članki...