VBA Union

Excel VBA Union

Union in VBA is vergelijkbaar met de union in andere programmeertalen, in VBA gebruiken we union om twee of meer dan twee bereiken te combineren om verschillende sets bewerkingen op hen uit te voeren, de verklaring die hiervoor wordt gebruikt, is zelf union en het wordt de union-methode genoemd , bijvoorbeeld unie (bereik (B2: C7), bereik (D2: E7)). selecteer en deze methode selecteert de cellen.

Union-methode voert de taak uit van het maken van een vereniging van twee of meer bereiken en retourneert het resultaat als een RANGE-object. Dit werkt precies hetzelfde als het onderstaande voorbeeld met het VBA RANGE-object.

Syntaxis

Bekijk nu de syntaxis van de UNION-methode.

We moeten minimaal 2 reeksen leveren.

  • Arg 1: Dit is de eerste reeks cellen die we nodig hebben om de vereniging van te maken.
  • Arg 2: Dit is de tweede reeks cellen waarvan we een vereniging moeten maken.

De eerste twee parameters zijn verplicht, na het noemen van twee celbereiken worden alle andere argumenten optioneel.

Wanneer de gegevens in stukjes in cellen zijn verspreid, moeten we al het gegevensbereik samenvoegen tot één om een ​​gemeenschappelijke taak uit te voeren. We kunnen een combinatie van een verspreid bereik tot een maken om een ​​vergelijkbare taak uit te voeren voor alle verenigingsbereiken.

Om meerdere celbereiken te selecteren, kunnen we meestal het RANGE-object gebruiken. Als we bijvoorbeeld het celbereik van A1 tot B5 en van B3 tot D5 willen selecteren, kunnen we de VBA-code schrijven zoals hieronder.

Code:

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

Dit zou het celbereik selecteren zoals in de onderstaande afbeelding.

Zoals we in de bovenstaande afbeelding kunnen zien, is het eerste bereik geselecteerd van A1 tot B5 en het tweede bereik is geselecteerd van B3 tot D5.

Dit is de gebruikelijke techniek die we allemaal hebben gebruikt tijdens het coderen. Dit is echter niet de enige methode die we hebben bij het coderen in VBA, we kunnen ook nog een methode gebruiken, genaamd "union", om een ​​unie van twee of meer bereiken te creëren.

Hoe de VBA Union-methode gebruiken om lid te worden van meerdere reeksen?

U kunt deze VBA Union Excel-sjabloon hier downloaden - VBA Union Excel-sjabloon

Voorbeeld 1

Laten we dezelfde take uitvoeren als in het bovenstaande voorbeeld, maar deze keer met behulp van de UNION-methode.

Stap 1 - Open de UNION-functie in de subprocedure.

Code:

 Sub Union_Example1 () Union (End Sub 

Stap 2 - Noem het eerste celbereik met behulp van het RANGE-object. In dit geval noem ik het eerste celbereik A1 tot B5 .

Code:

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

Stap 3 - Noem nu het tweede bereik van cellen met behulp van het RANGE-object, in dit geval noem ik het bereik van cellen als B3 tot D5 .

Code:

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

Stap 4 - Nadat we de vereniging van deze reeks cellen hebben gemaakt, moeten we beslissen wat we moeten doen met deze reeks cellen. Plaats een punt (.) Om de IntelliSense-lijst te zien.

Code:

Sub Union_Example1 () Union (Bereik ("A1: A5"), Bereik ("B3: B5")). Einde Sub

Stap 5 - We kunnen alle beschikbare eigenschappen en methoden van deze bereiken bekijken.

Voor dit voorbeeld zal ik de interieurkleur van vakbondscellen wijzigen. Hiervoor moet ik eerst de eigenschap Interieur selecteren.

Code:

 Sub Union_Example1 () Union (Bereik ("A1: A5"), Bereik ("B3: B5")). Binnenste einde Sub 

Stap 6 - Met interne eigenschap kunnen we veel dingen doen, maar aangezien we de kleur van de vakbonden moeten veranderen, zal ik de eigenschap Kleur selecteren.

Code:

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

Stap 7 - Nu moeten we de kleureigenschap instellen. Ik zal een ingebouwde kleurindex-eigenschap gebruiken als vbGreen.

Code:

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

Stap 8 - Als ik nu gebruik, worden de codekleuren van de vakbondscellen gewijzigd in groene kleur.

Op deze manier kunnen we met de Union-methode een unisono maken van twee of meer celbereik.

Voorbeeld # 2 - Gebruik variabelen om een ​​celbereik op te slaan

Bijna alle codeerders gebruiken variabelen om de referentie van het celbereik op te slaan. Kijk voor een voorbeeld naar de onderstaande 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 

Eerst heb ik twee variabelen gedeclareerd als bereik.

Dim Rng1 als bereik

Dim Rng2 als bereik

Vervolgens heb ik de referentie voor deze twee variabelen ingesteld.

Stel Rng1 = Bereik ("A1: B5") in

Set Rng2 = Range ("B3: D5")

Nu bevat variabele rng1 de referentie van Range ("A1: B5") en de tweede variabele rng2 bevat de referentie van Range ("B3: D5").

Vervolgens heb ik de UNION-functie toegepast om de inwendige kleur van deze reeks cellen te wijzigen.

Dit werkt ook precies hetzelfde als de vorige, maar het gebruik van variabele maakt de code zeer flexibel in gebruik.

Fout met Union-functie

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.