Αγώνας VBA | Πώς να χρησιμοποιήσετε τη λειτουργία Match στο VBA Excel; (Παραδείγματα)

Όπως και με το Index και το Match στο φύλλο εργασίας με τις λειτουργίες αναζήτησης, μπορούμε επίσης να χρησιμοποιήσουμε τις λειτουργίες Match στο VBA ως λειτουργία αναζήτησης, αυτή η συνάρτηση είναι μια συνάρτηση φύλλου εργασίας και έχει πρόσβαση στην εφαρμογή. μέθοδος φύλλου εργασίας και επειδή είναι συνάρτηση φύλλου εργασίας, τα ορίσματα για τη συνάρτηση αντιστοίχισης είναι παρόμοια με τη συνάρτηση φύλλου εργασίας.

Λειτουργία αγώνα VBA

Η συνάρτηση VBA Match αναζητά τον αριθμό θέσης ή σειράς της τιμής αναζήτησης στον πίνακα πίνακα, δηλαδή στον κύριο πίνακα excel.

Σε ένα φύλλο εργασίας, οι λειτουργίες αναζήτησης αποτελούν αναπόσπαστο μέρος του excel. Μερικές από τις σημαντικές λειτουργίες αναζήτησης είναι VLOOKUP, HLOOKUP, INDEX και MATCH. Δυστυχώς, δεν έχουμε αυτές τις λειτουργίες ως λειτουργίες VBA. Ωστόσο, μπορούμε να τα χρησιμοποιήσουμε ως λειτουργίες φύλλου εργασίας στο VBA.

Σε αυτό το άρθρο, θα σας δείξω πώς να χρησιμοποιήσετε μία από τις λειτουργίες αναζήτησης φύλλων εργασίας MATCH στο VBA ως συνάρτηση φύλλου εργασίας.

Πώς να χρησιμοποιήσετε τη λειτουργία MATCH στο VBA Excel;

Θα σας δείξουμε ένα απλό παράδειγμα χρήσης της συνάρτησης Excel MATCH στο VBA.

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA Match Excel εδώ - Πρότυπο VBA Match Excel

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

Στο VBA, μπορούμε να χρησιμοποιήσουμε αυτόν τον τύπο MATCH στο excel ως λειτουργία φύλλου εργασίας. Ακολουθήστε τα παρακάτω βήματα για να χρησιμοποιήσετε τη συνάρτηση MATCH στο VBA.

Βήμα 1: Δημιουργήστε μια υποδιαδικασία δίνοντας ένα όνομα μακροεντολής.

Κώδικας:

 Sub Match_Example1 ()

Βήμα 2: Στο κελί E2 χρειαζόμαστε το αποτέλεσμα, οπότε ξεκινήστε τον κωδικό ως Range ("E2"). Value =

Κώδικας:

 Sub Match_Example1 () Range ("E2"). Value = End Sub 

Βήμα 3: Στο E2 η τιμή του κελιού πρέπει να είναι το αποτέλεσμα του τύπου MATCH. Επομένως, για να αποκτήσουμε πρόσβαση στη συνάρτηση VBA MATCH, πρέπει πρώτα να χρησιμοποιήσουμε την ιδιότητα "WorksheetFunction". Σε αυτήν την ιδιότητα, θα λάβουμε όλη τη διαθέσιμη λίστα λειτουργιών φύλλου εργασίας.

Βήμα 4: Επιλέξτε τη λειτουργία MATCH εδώ.

Κώδικας:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (End Sub 

Βήμα 5: Τώρα το πρόβλημα ξεκινά επειδή δεν έχουμε ακριβές όνομα σύνταξης, αλλά παίρνουμε σύνταξη ως "Arg1, Arg2, Arg3" σαν αυτό. Επομένως, πρέπει να είστε απολύτως σίγουροι για τις σύνταξη εδώ.

Το πρώτο μας επιχείρημα είναι LOOKUP VALUE, το LOOKUP VALUE βρίσκεται στο κελί D2, οπότε επιλέξτε το κελί ως εύρος ("D2") .

Κώδικας:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, End Sub 

Βήμα 6: Το δεύτερο όρισμα είναι πίνακας πίνακας, το εύρος πίνακα πίνακα μας είναι από A2 έως A10. Επιλέξτε λοιπόν το εύρος ως "Range (" A2: A10 ")"

Κώδικας:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), End Sub 

Βήμα 7: Τώρα το τελικό επιχείρημα είναι ΤΥΠΟΣ ΑΛΛΑΓΗΣ. Χρειαζόμαστε μια ακριβή αντιστοίχιση, οπότε εισαγάγετε την τιμή του ορίσματος ως μηδέν.

Κώδικας:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), 0) End Sub 

Εκτελέστε τη μακροεντολή θα λάβουμε τη θέση οποιουδήποτε ονόματος έτους υπάρχει στο κελί D2.

Παράδειγμα # 2 - Αντιστοίχιση VBA από άλλο φύλλο

Ας υποθέσουμε ότι το ίδιο σύνολο δεδομένων από τα παραπάνω υπάρχει σε δύο διαφορετικά φύλλα. Για παράδειγμα, υπάρχει πίνακας πίνακα στο όνομα φύλλου που ονομάζεται "Φύλλο δεδομένων" και η τιμή αναζήτησης υπάρχει στο όνομα φύλλου που ονομάζεται "Φύλλο αποτελεσμάτων".

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

Κώδικας:

 Sub Match_Example2 () Sheets ("Result Sheet"). Range ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet"). Range ("D2"). Value, Sheets ("Data Sheet"). Εύρος ("A2: A10"), 0) End Sub 

Παράδειγμα # 3 - Λειτουργία αντιστοίχισης VBA με βρόχους

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

Ας υποθέσουμε ότι έχετε δεδομένα σαν αυτό.

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

Κώδικας:

 Sub Match_Example3 () Dim k As Integer For k = 2 to 10 Cells (k, 5). Value = WorksheetFunction.Match (Cells (k, 4). Value, Range ("A2: A10"), 0) Next k End Υπο 

Αυτό το σύνολο κωδικών θα έχει το αποτέλεσμα μόνο σε ένα μάτι.