VBA-unioni | Liity useisiin alueisiin Excel VBA Unionin avulla

Excel VBA -liitto

Unioni VBA: ssa on samanlainen kuin muiden ohjelmointikielien unioni, VBA: ssa käytämme unionia yhdistämään kaksi tai useampaa kuin kahta aluetta erilaisten operaatioiden suorittamiseksi, tähän käytetty lause on itse unioni ja sitä kutsutaan unionimenetelmäksi esimerkiksi unioni (Alue (B2: C7), Alue (D2: E7)). Valitse ja tämä menetelmä valitsee solut.

Union-menetelmä suorittaa kahden tai useamman alueen yhdistämisen luomisen ja palauttaa tuloksen RANGE-objektina. Tämä toimii täsmälleen samalla tavalla kuin alla oleva esimerkki VBA RANGE -objektin kanssa.

Syntaksi

Katsotaan nyt UNION-menetelmän syntaksia.

Meidän on toimitettava vähintään 2 aluetta.

  • Arg 1: Tämä on ensimmäinen solualue, jonka meidän on luotava liitos.
  • Arg 2: Tämä on toinen solualue, jonka meidän on luotava liitos.

Ensimmäiset kaksi parametria ovat pakollisia mainitsemisen jälkeen kaksi solualuetta, minkä jälkeen kaikista muista argumenteista tulee valinnaisia.

Kun data on siroteltu palasiksi soluihin, meidän on yhdistettävä kaikki data-alue yhdeksi yhteisen tehtävän suorittamiseksi. Voimme luoda sironta-alueen yhdisteen yhteen suorittamaan samanlainen tehtävä kaikille liitosalueille.

Useiden solualueiden valitsemiseksi voimme yleensä käyttää RANGE-objektia. Esimerkiksi, jos haluamme valita solualueen A1 - B5 ja B3 - D5, voimme kirjoittaa VBA-koodin kuten alla.

Koodi:

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

Tämä valitsisi solualueen, kuten alla oleva kuva.

Kuten yllä olevasta kuvasta voidaan nähdä, ensimmäinen alue valitaan välillä A1 - B5 ja toinen alue valitaan välillä B3 - D5.

Tämä on yleinen tekniikka, jota olemme kaikki käyttäneet koodaamisen aikana. Tämä ei kuitenkaan ole ainoa menetelmä, jota meillä on VBA: n koodauksessa, voimme myös käyttää vielä yhtä menetelmää, jota kutsutaan "unioniksi" kahden tai useamman alueen yhdistämisen luomiseksi.

Kuinka käyttää VBA Union -menetelmää liittyäksesi useaan alueeseen?

Voit ladata tämän VBA Union Excel -mallin täältä - VBA Union Excel -malli

Esimerkki 1

Suoritetaan sama otos kuin edellisessä esimerkissä, mutta tällä kertaa käyttämällä UNION-menetelmää.

Vaihe 1 - Avaa UNION-toiminto alimenettelyssä.

Koodi:

 Sub Union_Example1 () Union (End Sub 

Vaihe 2 - Mainitse ensimmäinen solualue RANGE-objektilla. Tässä tapauksessa mainitsen ensimmäisen solualueen A1 - B5 .

Koodi:

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

Vaihe 3 - Mainitse nyt toinen solualue, joka käyttää RANGE-objektia, tässä tapauksessa mainitsen solualueen B3 - D5 .

Koodi:

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

Vaihe 4 - Kun olemme luoneet näiden solualueiden yhdistämisen, meidän on päätettävä, mitä meidän on tehtävä tällä solualueella. Laita piste (.) Nähdäksesi IntelliSense-luettelon.

Koodi:

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

Vaihe 5 - Näemme kaikki näiden alueiden käytettävissä olevat ominaisuudet ja menetelmät.

Tässä esimerkissä muutan liitosolujen Sisätilan väriä. Tätä varten minun on ensin valittava Sisustus-ominaisuus.

Koodi:

 Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Sisäpuoli Sub 

Vaihe 6 - Sisustusominaisuuksilla voimme tehdä monia asioita, mutta koska meidän on vaihdettava liitosolujen väriä, valitsen Väri-ominaisuuden.

Koodi:

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

Vaihe 7 - Nyt meidän on asetettava väriominaisuus. Käytän sisäänrakennettua väriindeksiominaisuutta vbGreen-tiedostona.

Koodi:

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

Vaihe 8 - Nyt kun suoritan liitosolujen koodivärit muutetaan vihreiksi.

Tällä tavoin unionin menetelmällä voimme luoda kahden tai useamman solualueen yhtenäisyyden.

Esimerkki # 2 - Käytä muuttujia solualueen tallentamiseen

Kaiken kaikkiaan kaikki kooderit käyttävät muuttujia solualueen viitteen tallentamiseen. Katso esimerkki alla olevasta koodista.

Koodi:

 Sub Union_Example2 () Dim Rng1 As Range Dim Rng2 As Range Set Rng1 = Alue ("A1: B5") Aseta Rng2 = Alue ("B3: D5") Union (Rng1, Rng2) .Interior.Color = vbGreen End Sub 

Ensin olen ilmoittanut kaksi muuttujaa Range-alueeksi.

Himmennä Rng1 alueena

Himmennä Rng2 alueena

Sitten olen asettanut viitteen näille kahdelle muuttujalle.

Aseta Rng1 = Alue (“A1: B5”)

Aseta Rng2 = Alue (“B3: D5”)

Muuttujalla rng1 on nyt alueen referenssi (“A1: B5”) ja toisella muuttujalla rng2 on alueen referenssi (“B3: D5”).

Sitten olen käyttänyt UNION-toimintoa muuttaaksesi näiden solualueiden sisäväriä.

Tämä toimii myös täsmälleen samalla tavalla kuin edellinen, mutta muuttujan käyttö tekee koodista erittäin joustavan käyttää.

Virhe Unionin toiminnassa

Kuten sanoin, kaikkien viitteiden tulisi olla pakollisia UNION-menetelmälle. Katso esimerkki alla olevasta koodista.

Koodi:

 Sub Union_Example3 () Dim Rng1 As Range Dim Rng2 As Range Dim Rng3 As Range Set Rng1 = Alue ("A1: B5") Asettaa Rng2 = Alue ("B3: D5") Union (Rng1, Rng2, Rng3) .Sisä.Väri = vbVihreä loppuosa 

Tämä on samanlainen kuin edellinen, mutta tässä olen ilmoittanut vielä yhden muuttujan Range-arvoksi.

Himmennä Rng3 alueena

Mutta en ole asettanut viittausta tähän muuttujaan, vaan toimitin muuttujan vain UNION-funktiolle.

Unioni (Rng1, Rng2, Rng3) .Sisä.Väri = vbGreen

Jos suoritan tämän koodin, saamme alla olevan kaltaisen virheen.

Tämä johtuu siitä, että riippumatta muuttujasta, jonka toimitamme argumentille, tulisi olla jonkinlainen viittaus työtaulukon soluihin.


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