Αγώνας 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.

Παράδειγμα # 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 βρίσκεται στο κελί D2, οπότε επιλέξτε το κελί ως εύρος ("D2") .

Κώδικας:

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

Βήμα 6: Το δεύτερο επιχείρημα είναι το Table Array. Το εύρος πινάκων μας είναι από 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 Υπο

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

ενδιαφέροντα άρθρα...