Ένωση VBA | Συμμετάσχετε σε πολλές σειρές χρησιμοποιώντας το Excel VBA Union

Ένωση VBA Excel

Η ένωση στο VBA είναι παρόμοια με την ένωση σε άλλες γλώσσες προγραμματισμού, στο VBA χρησιμοποιούμε το συνδικάτο για να συνδυάσουμε δύο ή περισσότερα από δύο εύρη για να εκτελέσουμε διαφορετικά σύνολα λειτουργιών σε αυτά, η δήλωση που χρησιμοποιείται για αυτό είναι η ίδια η ένωση και ονομάζεται μέθοδος συνδικάτου , για παράδειγμα, ένωση (Range (B2: C7), Range (D2: E7)). select και αυτή η μέθοδος θα επιλέξει τα κελιά.

Η μέθοδος Union εκτελεί το καθήκον να δημιουργήσει μια ένωση δύο ή περισσότερων περιοχών και να επιστρέψει το αποτέλεσμα ως αντικείμενο RANGE. Αυτό λειτουργεί ακριβώς το ίδιο με το παρακάτω παράδειγμα με το αντικείμενο VBA RANGE.

Σύνταξη

Τώρα ρίξτε μια ματιά στη σύνταξη της μεθόδου UNION.

Πρέπει να παρέχουμε τουλάχιστον 2 σειρές.

  • Arg 1: Αυτό είναι το πρώτο εύρος κελιών που πρέπει να δημιουργήσουμε την ένωση του.
  • Arg 2: Αυτό είναι το δεύτερο εύρος κελιών που πρέπει να δημιουργήσουμε μια ένωση.

Οι δύο πρώτες παράμετροι είναι υποχρεωτικές, αφού αναφερθούν δύο περιοχές κελιών, τότε όλα τα άλλα ορίσματα γίνονται προαιρετικά.

Όταν τα δεδομένα είναι διασκορπισμένα σε κομμάτια σε κελιά, πρέπει να συνδυάσουμε όλο το εύρος δεδομένων σε ένα για να εκτελέσουμε μια κοινή εργασία. Μπορούμε να δημιουργήσουμε μια ένωση διάσπαρτου εύρους σε μία για να εκτελέσουμε μια παρόμοια εργασία για όλες τις περιοχές ένωσης.

Για να επιλέξετε πολλές περιοχές κελιών, συνήθως μπορούμε να χρησιμοποιήσουμε αντικείμενο RANGE. Για παράδειγμα, εάν θέλουμε να επιλέξουμε το εύρος κελιών από A1 έως B5 και από B3 έως D5, μπορούμε να γράψουμε τον κώδικα VBA όπως παρακάτω.

Κώδικας:

 Υπο Union_Example1 () Union (Range ("A1: B5"), Range ("B3: D5")). Επιλέξτε End Sub 

Αυτό θα επέλεγε το εύρος των κελιών, όπως η παρακάτω εικόνα.

Όπως μπορούμε να δούμε στην παραπάνω εικόνα, το πρώτο εύρος επιλέγεται από A1 έως B5 και το δεύτερο εύρος επιλέγεται από B3 έως D5.

Αυτή είναι η κοινή τεχνική που όλοι έχουμε χρησιμοποιήσει κατά την κωδικοποίηση. Ωστόσο, αυτή δεν είναι η μόνη μέθοδος που έχουμε στην κωδικοποίηση στο VBA, μπορούμε επίσης να χρησιμοποιήσουμε μια ακόμη μέθοδο που ονομάζεται «ένωση» για να δημιουργήσουμε μια ένωση δύο ή περισσότερων περιοχών.

Πώς να χρησιμοποιήσετε τη μέθοδο VBA Union για συμμετοχή σε πολλαπλές περιοχές;

Μπορείτε να κατεβάσετε αυτό το Πρότυπο VBA Union Excel εδώ - Πρότυπο VBA Union Excel

Παράδειγμα # 1

Ας εκτελέσουμε την ίδια λήψη όπως κάναμε στο παραπάνω παράδειγμα, αλλά αυτή τη φορά χρησιμοποιώντας τη μέθοδο UNION.

Βήμα 1 - Ανοίξτε τη συνάρτηση UNION στη δευτερεύουσα διαδικασία.

Κώδικας:

 Υπο Union_Example1 () Union (End Sub 

Βήμα 2 - Αναφέρετε την πρώτη περιοχή κελιών χρησιμοποιώντας αντικείμενο RANGE. Σε αυτήν την περίπτωση, αναφέρομαι στο πρώτο εύρος κελιών ως Α1 έως Β5 .

Κώδικας:

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

Βήμα 3 - Τώρα αναφέρετε τη δεύτερη περιοχή κελιών χρησιμοποιώντας αντικείμενο RANGE, σε αυτήν την περίπτωση, αναφέρομαι στην περιοχή κελιών ως B3 έως D5 .

Κώδικας:

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

Βήμα 4 - Αφού δημιουργήσουμε την ένωση αυτών των κυττάρων, πρέπει να αποφασίσουμε τι πρέπει να κάνουμε με αυτό το εύρος κελιών. Βάλτε την τελεία (.) Για να δείτε τη λίστα IntelliSense.

Κώδικας:

Υπο Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Τέλος Υποτ

Βήμα 5 - Μπορούμε να δούμε όλες τις διαθέσιμες ιδιότητες και μεθόδους αυτών των περιοχών.

Για αυτό το παράδειγμα, θα αλλάξω το εσωτερικό χρώμα των κελιών ένωσης. Για αυτό πρέπει πρώτα να επιλέξω την ιδιότητα Εσωτερικό.

Κώδικας:

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

Βήμα 6 - Με την εσωτερική ιδιότητα, μπορούμε να κάνουμε πολλά πράγματα, αλλά επειδή πρέπει να αλλάξουμε το χρώμα των κελιών ένωσης, θα επιλέξω Ιδιότητα χρώματος.

Κώδικας:

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

Βήμα 7 - Τώρα πρέπει να ορίσουμε την ιδιότητα χρώματος. Θα χρησιμοποιήσω μια ενσωματωμένη ιδιότητα ευρετηρίου χρωμάτων ως vbGreen.

Κώδικας:

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

Βήμα 8 - Τώρα αν εκτελέσω τα χρώματα κώδικα των κελιών ένωσης θα αλλάξουν σε πράσινο χρώμα

Όπως και με τη μέθοδο Union, μπορούμε να δημιουργήσουμε ταυτόχρονα δύο ή περισσότερες περιοχές κελιών.

Παράδειγμα # 2 - Χρησιμοποιήστε μεταβλητές για αποθήκευση εύρους κελιών

Πάνω από όλα, όλοι οι κωδικοποιητές χρησιμοποιούν μεταβλητές για να αποθηκεύουν την αναφορά του εύρους των κελιών. Για παράδειγμα δείτε τον παρακάτω κώδικα.

Κώδικας:

 Υπο 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 = vb Green End Sub 

Πρώτα έχω δηλώσει δύο μεταβλητές ως Range.

Dim Rng1 ως εύρος

Dim Rng2 ως εύρος

Τότε έχω ορίσει την αναφορά για αυτές τις δύο μεταβλητές.

Ορισμός Rng1 = Εύρος ("A1: B5")

Ορισμός Rng2 = Εύρος ("B3: D5")

Τώρα η μεταβλητή rng1 κρατά την αναφορά του εύρους ("A1: B5") και η δεύτερη μεταβλητή rng2 περιέχει την αναφορά του εύρους ("B3: D5").

Στη συνέχεια, έχω εφαρμόσει τη συνάρτηση UNION για να αλλάξω το εσωτερικό χρώμα αυτού του εύρους κελιών.

Αυτό λειτουργεί επίσης ακριβώς το ίδιο με το προηγούμενο, αλλά η χρήση μεταβλητής καθιστά τον κώδικα πολύ ευέλικτο στη χρήση.

Σφάλμα με τη συνάρτηση Union

Όπως είπα, όλες οι αναφορές πρέπει να είναι υποχρεωτικές για τη μέθοδο UNION. Για παράδειγμα δείτε τον παρακάτω κώδικα.

Κώδικας:

 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). Εσωτερικό. Χρώμα = vbGreen End Sub 

Αυτό είναι παρόμοιο με το προηγούμενο, αλλά εδώ έχω δηλώσει μια ακόμη μεταβλητή ως Range.

Dim Rng3 ως εύρος

Αλλά δεν έχω ορίσει την αναφορά σε αυτήν τη μεταβλητή, αλλά απλώς παρέδωσα τη μεταβλητή στη συνάρτηση UNION.

Ένωση (Rng1, Rng2, Rng3). Εσωτερικό. Χρώμα = vb Πράσινο

Εάν εκτελέσω αυτόν τον κωδικό, θα λάβουμε το σφάλμα όπως παρακάτω.

Αυτό συμβαίνει επειδή όποια και αν είναι η μεταβλητή που παρέχουμε στο όρισμα πρέπει να περιέχει κάποια αναφορά στα κελιά στο φύλλο εργασίας που επεξεργαζόμαστε.


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