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

Αντιστοίχιση ευρετηρίου σε VBA

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

Πώς να χρησιμοποιήσετε το Match Match στο VBA; (Βήμα βήμα)

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

Για παράδειγμα, δείτε τα παρακάτω δεδομένα.

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

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

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

Βήμα 1: Ξεκινήστε τη ρουτίνα του ήλιου.

Βήμα 2: Δηλώστε τη μεταβλητή VBA Integer.

Κώδικας:

 Υπο INDEX_MATCH_ Παράδειγμα 1 () Dim k ως ακέραιο τελικό υπο 

Βήμα 3: Τώρα ανοίξτε για το επόμενο βρόχο στο VBA.

Κώδικας:

 Υπο INDEX_MATCH_ Παράδειγμα 1 () Dim k As Integer For k = 2 to 5 Next k End Sub 

Βήμα 4: Μέσα στο βρόχο VBA εκτελέστε τον τύπο. Στην 5η στήλη, πρέπει να εφαρμόσουμε τον τύπο, οπότε ο κώδικας είναι CELLS (k, 5). Value =

Κώδικας:

 Υπο INDEX_MATCH_ Παράδειγμα 1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = Next k End Sub 

Βήμα 5: Σε αυτό το κελί, πρέπει να εφαρμόσουμε τον τύπο VBA INDEX & MATCH. Όπως είπα, πρέπει να χρησιμοποιήσουμε αυτές τις λειτουργίες ως Λειτουργία φύλλου εργασίας στην τάξη vba, οπότε ανοίξτε την κλάση λειτουργίας φύλλου εργασίας.

Κώδικας:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction. Επόμενο k End Sub

Βήμα 6: Μετά την είσοδο στην κλάση λειτουργίας φύλλου εργασίας μπορούμε να δούμε όλη τη διαθέσιμη λειτουργία φύλλου εργασίας, οπότε επιλέξτε τη συνάρτηση INDEX.

Κώδικας:

 Υπο INDEX_MATCH_ Παράδειγμα 1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Next k End Sub 

Βήμα 7: Κατά τη χρήση της λειτουργίας φύλλου εργασίας στο VBA, πρέπει να είστε απολύτως σίγουροι για τα επιχειρήματα του τύπου. Το πρώτο όρισμα είναι πίνακας δηλαδή από ποια στήλη χρειαζόμαστε το αποτέλεσμα, σε αυτήν την περίπτωση, χρειαζόμαστε το αποτέλεσμα από A2 έως A5.

Κώδικας:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), Next k End Sub 

Βήμα 8: Το επόμενο είναι από ποιο αριθμό σειράς χρειαζόμαστε το αποτέλεσμα Όπως έχουμε δει το προηγούμενο παράδειγμα, δεν μπορούμε να παρέχουμε χειροκίνητα τον αριθμό σειράς κάθε φορά. Χρησιμοποιήστε λοιπόν τη λειτουργία MATCH.

Για να χρησιμοποιήσουμε ξανά τη συνάρτηση MATCH, πρέπει να ανοίξουμε την κλάση Λειτουργία φύλλου εργασίας.

Κώδικας:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Next k End Sub 

Βήμα 9: Το πρώτο όρισμα συναρτήσεων MATCH είναι η τιμή LOOKUP, εδώ η τιμή αναζήτησης είναι ονόματα τμημάτων, υπάρχει στα κελιά (2, 4).

Δεδομένου ότι κάθε φορά που ο αριθμός σειράς πρέπει να αλλάζει, μπορούμε να παρέχουμε τη μεταβλητή "k" στη θέση του μη αυτόματου αριθμού σειράς 2. Κελιά (k, 4). Αξία

Κώδικας:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Value, Next k End Sub 

Βήμα 10: Στη συνέχεια πρέπει να αναφέρουμε το εύρος τιμών τμήματος, δηλαδή το εύρος ("B2: B5").

Κώδικας:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Value, Range ("B2: B5"), 

Επόμενο k

Τέλος Υποτ

Βήμα 11: Στη συνέχεια βάλτε το όρισμα ως 0 επειδή χρειαζόμαστε ένα ακριβές ταίριασμα και κλείστε τις αγκύλες.

Κώδικας:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4). Value, Range ("B2: B5"), 0)) 

Επόμενο k

Τέλος Υποτ

Εντάξει, τελειώσαμε με το τμήμα κωδικοποίησης. Ας τρέξουμε τον κώδικα για να έχουμε αποτέλεσμα στη στήλη 5.

Λοιπόν, έχουμε το αποτέλεσμα.

Μπορούμε να χρησιμοποιήσουμε αυτόν τον τύπο ως εναλλακτική λύση στη συνάρτηση VLOOKUP.