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.

Pirmieji 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ą, pvz., Ž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ų?

Šį „VBA Union Excel“ šabloną galite atsisiųsti čia - „VBA Union Excel“ šablonas

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_Example1 () 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_Eample1 () Union (Range ("A1: A5"), Range ("B3: B5")) End Sub 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ų, bet kadangi turime pakeisti jungčių langelių spalvą, aš pasirenku „Color“ savybę.

Kodas:

 Sub Union_Pavyzdys1 () Union (Range ("A1: A5"), Range ("B3: B5")). Interjeras. Spalva End 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 

8 žingsnis - Dabar, jei aš paleisiu, sąjungos langelių spalvos bus pakeistos į žalią.

Panašiai taikydami Sąjungos metodą, galime sukurti dviejų ar daugiau langelių diapazoną.

2 pavyzdys - naudokite kintamuosius ląstelių diapazonui saugoti

Dažniausiai visi koduotojai naudoja kintamuosius, kad išsaugotų ląstelių diapazono nuorodą. Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.

Kodas:

 Sub Union_Pavyzdys2 () 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 

Pirmiausia aš paskelbiau du kintamuosius kaip diapazoną.

„Dim Rng1“ kaip diapazonas

„Dim Rng2 As Range“

Tada aš nustatiau šių dviejų kintamųjų nuorodą.

Nustatyti Rng1 = diapazonas („A1: B5“)

Nustatyti Rng2 = diapazonas („B3: D5“)

Dabar kintamasis rng1 turi diapazono nuorodą („A1: B5“), o antrasis kintamasis rng2 - diapazono nuorodą („B3: D5“).

Tada aš pritaikiau funkciją UNION, kad pakeisčiau šių langelių diapazono vidinę spalvą.

Tai taip pat veikia lygiai taip pat kaip ir ankstesnė, tačiau naudojant kintamąjį kodas yra labai lankstus naudoti.

„Union“ funkcijos klaida

Kaip sakiau, visos nuorodos turėtų būti privalomos pagal UNION metodą. Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.

Kodas:

 Sub Union_Pavyzdys3 () 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 

Tai panašu į ankstesnį, bet čia aš paskelbiau dar vieną kintamąjį kaip „Range“.

„Dim Rng3 As Range“

Bet aš nenustatiau nuorodos į šį kintamąjį, greičiau pateikiau kintamąjį funkcijai UNION.

Sąjunga (Rng1, Rng2, Rng3). Viduje. Spalva = vbGreen

Jei paleisiu šį kodą, gausime klaidą, kaip nurodyta toliau.

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


$config[zx-auto] not found$config[zx-overlay] not found