Union VBA

Union VBA Excel

Union dans VBA est similaire à l'union dans d'autres langages de programmation, dans VBA, nous utilisons union pour combiner deux ou plus de deux plages pour effectuer différents ensembles d'opérations sur elles, l'instruction utilisée pour cela est elle-même union et elle est appelée méthode d'union , par exemple, union (Range (B2: C7), Range (D2: E7)). select et cette méthode sélectionnera les cellules.

La méthode Union effectue la tâche de création d'une union de deux plages ou plus et renvoie le résultat sous la forme d'un objet RANGE. Cela fonctionne exactement de la même manière que l'exemple ci-dessous avec l'objet VBA RANGE.

Syntaxe

Jetez maintenant un œil à la syntaxe de la méthode UNION.

Nous devons fournir un minimum de 2 gammes.

  • Arg 1: C'est la première plage de cellules dont nous avons besoin pour créer l'union.
  • Arg 2: C'est la deuxième plage de cellules dont nous avons besoin pour créer une union.

Les deux premiers paramètres sont obligatoires, après avoir mentionné deux plages de cellules, tous les autres arguments deviennent facultatifs.

Lorsque les données sont dispersées en morceaux dans des cellules, nous devons combiner ensemble toute la plage de données en une seule pour effectuer une tâche commune. Nous pouvons créer une union de plage dispersée à un pour effectuer une tâche similaire pour toutes les plages d'union.

Pour sélectionner plusieurs plages de cellules, nous pouvons généralement utiliser l'objet RANGE. Par exemple, si nous voulons sélectionner la plage de cellules de A1 à B5 et de B3 à D5, nous pouvons écrire le code VBA comme ci-dessous.

Code:

 Sub Union_Example1 () Union (Range ("A1: B5"), Range ("B3: D5")). Sélectionnez End Sub 

Cela sélectionnerait la plage de cellules comme l'image ci-dessous.

Comme nous pouvons le voir dans l'image ci-dessus, la première plage est sélectionnée de A1 à B5 et la seconde plage est sélectionnée de B3 à D5.

C'est la technique courante que nous avons tous utilisée lors du codage. Cependant, ce n'est pas la seule méthode que nous avons dans le codage en VBA, nous pouvons également utiliser une autre méthode appelée «union» pour créer une union de deux ou plusieurs plages.

Comment utiliser la méthode VBA Union pour rejoindre plusieurs plages?

Vous pouvez télécharger ce modèle Excel VBA Union ici - Modèle Excel VBA Union

Exemple 1

Effectuons la même prise que dans l'exemple ci-dessus, mais cette fois en utilisant la méthode UNION.

Étape 1 - Ouvrez la fonction UNION dans la sous-procédure.

Code:

 Sub Union_Example1 () Union (End Sub 

Étape 2 - Mentionnez la première plage de cellules en utilisant l'objet RANGE. Dans ce cas, je mentionne la première plage de cellules comme A1 à B5 .

Code:

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

Étape 3 - Mentionnez maintenant la deuxième plage de cellules en utilisant l'objet RANGE, dans ce cas, je mentionne la plage de cellules de B3 à D5 .

Code:

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

Étape 4 - Après avoir créé l'union de ces plages de cellules, nous devons décider de ce que nous devons faire avec cette plage d'union de cellules. Mettez un point (.) Pour voir la liste IntelliSense.

Code:

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

Étape 5 - Nous pouvons voir toutes les propriétés et méthodes disponibles de ces gammes.

Pour cet exemple, je vais changer la couleur intérieure des cellules d'union. Pour cela, je dois d'abord sélectionner la propriété Intérieur.

Code:

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

Étape 6 - Avec la propriété intérieure, nous pouvons faire beaucoup de choses, mais comme nous devons changer la couleur des cellules d'union, je vais sélectionner la propriété Couleur.

Code:

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

Étape 7 - Nous devons maintenant définir la propriété de couleur. J'utiliserai une propriété d'index de couleur intégrée comme vbGreen.

Code:

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

Étape 8 - Maintenant, si j'exécute, les couleurs de code des cellules d'union seront changées en couleur verte.

Comme cela, en utilisant la méthode Union, nous pouvons créer l'unisson de deux ou plusieurs plages de cellules.

Exemple # 2 - Utiliser des variables pour stocker une plage de cellules

Tous les plus tous les codeurs utilisent des variables pour stocker la référence de la plage de cellules. Pour un exemple, regardez le code ci-dessous.

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 

J'ai d'abord déclaré deux variables comme Range.

Dim Rng1 As Range

Dim Rng2 comme plage

Ensuite, j'ai défini la référence pour ces deux variables.

Set Rng1 = Range ("A1: B5")

Set Rng2 = Range ("B3: D5")

Maintenant, la variable rng1 contient la référence de Range («A1: B5») et la deuxième variable rng2 contient la référence de Range («B3: D5»).

Ensuite, j'ai appliqué la fonction UNION pour changer la couleur intérieure de ces plages de cellules.

Cela fonctionne également exactement de la même manière que le précédent, mais l'utilisation de variable rend le code très flexible à utiliser.

Erreur avec la fonction Union

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.