VBA-vakbond - Sluit je aan bij meerdere bereiken met Excel VBA Union

Inhoudsopgave

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)). selecteren 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 series 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?

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 - Na het maken van de vereniging van deze reeks cellen, 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 (Range ("A1: A5"), Range ("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 (Bereik ("A1: A5"), Bereik ("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.

Dit komt omdat welke variabele we ook aan het argument leveren, een verwijzing moet bevatten naar de cellen in het werkblad waaraan we werken.

Interessante artikelen...