VBA sąjunga - Prisijunkite prie kelių diapazonų naudodami „Excel VBA Union“

„Excel VBA Union“

Sąjunga VBA yra panaši į sąjungą kitomis programavimo kalbomis, VBA mes naudojame sąjungą, kad sujungtume du ar daugiau nei du diapazonus, kad atliktume skirtingus operacijų rinkinius. Tam naudojamas teiginys pats yra sąjunga ir jis vadinamas sąjungos metodu , pavyzdžiui, sąjunga (Diapazonas (B2: C7), Diapazonas (D2: E7)). Pasirinkite ir šis metodas parinks langelius.

„Union“ metodas atlieka užduotį sukurti dviejų ar daugiau diapazonų sąjungą ir grąžina rezultatą kaip objektą RANGE. Tai veikia taip pat, kaip žemiau pateiktame pavyzdyje su objektu VBA RANGE.

Sintaksė

Dabar pažvelkite į UNION metodo sintaksę.

Turime pateikti mažiausiai 2 diapazonus.

  • Arg 1: Tai yra pirmasis ląstelių diapazonas, kurio mums reikia sukurti.
  • Arg 2: Tai yra antrasis ląstelių diapazonas, kurio mums reikia sukurti.

Pirmiausia du parametrai yra privalomi, paminėjus du langelių diapazonus, tada visi kiti argumentai tampa neprivalomi.

Kai duomenys išsklaidomi dalimis ląstelėse, turime sujungti visus duomenų diapazonus į vieną, kad atliktume bendrą užduotį. Mes galime sukurti išsibarsčiusio diapazono sąjungą, kad atliktume panašią visų sąjungų diapazonų užduotį.

Norėdami pasirinkti kelis langelių diapazonus, paprastai galime naudoti objektą RANGE. Pavyzdžiui, jei norime pasirinkti langelių diapazoną nuo A1 iki B5 ir nuo B3 iki D5, galime parašyti VBA kodą, kaip nurodyta toliau.

Kodas:

Sub Union_Pavyzdys1 () Union (Range ("A1: B5"), Range ("B3: D5")). Pasirinkite End Sub

Tai pasirinktų langelių diapazoną, pavyzdžiui, žemiau esantį vaizdą.

Kaip matome aukščiau esančiame paveikslėlyje, pirmasis diapazonas yra pasirinktas nuo A1 iki B5, o antrasis - nuo B3 iki D5.

Tai yra įprasta technika, kurią visi naudojome koduodami. Tačiau tai nėra vienintelis metodas, kurį turime koduodami VBA; taip pat galime naudoti dar vieną metodą, vadinamą „sąjunga“, kad sukurtume dviejų ar daugiau diapazonų sąjungą.

Kaip naudoti „VBA Union“ metodą norint prisijungti prie kelių diapazonų?

1 pavyzdys

Atlikime tą patį paėmimą, kurį darėme aukščiau pateiktame pavyzdyje, bet šį kartą naudodami UNION metodą.

1 žingsnis - atidarykite UNION funkciją antrinėje procedūroje.

Kodas:

Sub Union_Pavyzdys1 () Union (End Sub

2 žingsnis - paminėkite pirmąjį langelių diapazoną naudodami objektą RANGE. Šiuo atveju aš paminu pirmąjį langelių diapazoną nuo A1 iki B5 .

Kodas:

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

3 žingsnis. Dabar paminėkite antrą langelių diapazoną, naudodami objektą RANGE, šiuo atveju aš pamenu ląstelių diapazoną kaip B3 - D5 .

Kodas:

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

4 žingsnis - sukūrę šių ląstelių diapazono sąjungą, turime nuspręsti, ką turime daryti su šios jungties ląstelių diapazonu. Įdėkite tašką (.), Kad pamatytumėte „IntelliSense“ sąrašą.

Kodas:

Sub Union_Eample1 () Union (Range ("A1: A5"), Range ("B3: B5")). Pabaigos sub

5 žingsnis - galime pamatyti visas galimas šių diapazonų savybes ir metodus.

Šiame pavyzdyje aš pakeisiu jungčių langelių Interjero spalvą. Tam pirmiausia reikia pasirinkti „Interjero“ nuosavybę.

Kodas:

Sub Union_Eample1 () Union (Range ("A1: A5"), Range ("B3: B5")). Interjero pabaiga Sub

6 žingsnis - turėdami interjero ypatybes, galime padaryti daug dalykų, tačiau kadangi turime pakeisti jungčių langelių spalvą, aš pasirenku „Color“ ypatybę.

Kodas:

Sub Union_Eample1 () Union (Range ("A1: A5"), Range ("B3: B5")). Interjeras. Spalva Pabaiga Sub

7 žingsnis - Dabar turime nustatyti spalvos ypatybę. Aš naudosiu integruotą spalvų indekso ypatybę kaip „vbGreen“.

Kodas:

Sub Union_Eample1 () 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.

Taip yra todėl, kad bet koks kintamasis, kurį pateikiame argumentui, turėtų turėti tam tikrą langelio nuorodą darbalapyje, kuriame dirbame.

Įdomios straipsniai...