VBA Union

Excel VBA Union

Union i VBA liknar unionen i andra programmeringsspråk, i VBA använder vi union för att kombinera två eller fler än två intervall för att utföra olika uppsättningar av operationer på dem, uttalandet som används för detta är i sig union och det kallas som unionsmetod , till exempel union (Range (B2: C7), Range (D2: E7)). välj och den här metoden markerar cellerna.

Union-metoden utför uppgiften att skapa en union med två eller flera intervall och returnerar resultatet som ett RANGE-objekt. Detta fungerar exakt på samma sätt som nedanstående exempel med VBA RANGE-objekt.

Syntax

Ta nu en titt på syntaxen för UNION-metoden.

Vi måste tillhandahålla minst två intervall.

  • Arg 1: Detta är det första cellområdet vi behöver för att skapa unionen av.
  • Arg 2: Detta är det andra cellområdet vi behöver för att skapa en sammanslutning av.

De första två parametrarna är obligatoriska, efter att ha nämnt två cellområden blir alla andra argument valfria.

När data sprids i bitar i celler måste vi kombinera hela dataområdet till ett för att utföra en gemensam uppgift. Vi kan skapa en sammansättning av spridd räckvidd till en för att utföra en liknande uppgift för alla fackområden.

För att välja flera cellområden kan vi vanligtvis använda RANGE-objekt. Om vi ​​till exempel vill välja cellintervallet från A1 till B5 och från B3 till D5 kan vi skriva VBA-koden som nedan.

Koda:

 Sub Union_Example1 () Union (Range ("A1: B5"), Range ("B3: D5")). Välj End Sub 

Detta skulle välja cellområdet som bilden nedan.

Som vi kan se i bilden ovan väljs det första området från A1 till B5 och det andra området väljs från B3 till D5.

Detta är den vanliga tekniken som vi alla har använt vid kodning. Detta är dock inte den enda metoden vi har för kodning i VBA, vi kan också använda en metod som kallas "union" för att skapa en union med två eller flera intervall.

Hur använder jag VBA Union-metoden för att gå med i flera intervall?

Du kan ladda ner denna VBA Union Excel-mall här - VBA Union Excel-mall

Exempel nr 1

Låt oss utföra samma tag som vi gjorde i exemplet ovan men den här gången med hjälp av UNION-metoden.

Steg 1 - Öppna UNION-funktionen i delproceduren.

Koda:

 Sub Union_Example1 () Union (End Sub 

Steg 2 - Nämn det första cellområdet med RANGE-objekt. I det här fallet nämner jag det första cellområdet som A1 till B5 .

Koda:

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

Steg 3 - Nämn nu det andra cellområdet med RANGE-objekt, i det här fallet nämner jag cellområdet som B3 till D5 .

Koda:

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

Steg 4 - Efter att ha skapat unionen av dessa celler måste vi bestämma vad vi behöver göra med detta cellområde. Sätt punkt (.) För att se IntelliSense-listan.

Koda:

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

Steg 5 - Vi kan se alla tillgängliga egenskaper och metoder för dessa intervall.

För det här exemplet kommer jag att ändra interiörfärgen på unionsceller. För detta måste jag först välja egenskapen Interiör.

Koda:

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

Steg 6 - Med interiöregenskaper kan vi göra många saker, men eftersom vi behöver ändra färgen på unionscellerna kommer jag att välja färgegenskap.

Koda:

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

Steg 7 - Nu måste vi ställa in färgegenskapen. Jag kommer att använda en inbyggd färgindexegenskap som vbGreen.

Koda:

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

Steg 8 - Om jag kör nu ändras kodfärgerna på unionens celler till grön färg.

Som detta med hjälp av unionsmetoden kan vi skapa unison av två eller flera celler.

Exempel # 2 - Använd variabler för att lagra cellintervall

I stort sett alla kodare använder variabler för att lagra referensen för cellområdet. För ett exempel, se nedanstående kod.

Koda:

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

Först har jag förklarat två variabler som Range.

Dim Rng1 som intervall

Dim Rng2 som intervall

Sedan har jag ställt in referensen för dessa två variabler.

Ställ in Rng1 = Range (“A1: B5”)

Ställ in Rng2 = Range (“B3: D5”)

Nu innehåller variabel rng1 referensen för Range (“A1: B5”) och den andra variabeln rng2 innehåller referensen för Range (“B3: D5”).

Sedan har jag använt UNION-funktionen för att ändra interiörfärgen på dessa celler.

Detta fungerar också exakt på samma sätt som den tidigare, men att använda variabel gör koden mycket flexibel att använda.

Fel med unionsfunktion

As I told all the references should be mandatory for the UNION method. For an 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.

This is because whatever the variable we supply to the argument should hold some reference of the cells in the worksheet we are working on.