VBA ΒΡΕΙΤΕ ΕΠΟΜΕΝΟ | Πώς να χρησιμοποιήσετε τη λειτουργία FindNext στο Excel VBA;

Excel VBA Find Next

Όπως στο excel όταν πατάμε CTRL + F εμφανίζεται ένα πλαίσιο οδηγού που μας επιτρέπει να αναζητήσουμε μια τιμή στο δεδομένο φύλλο εργασίας και μόλις βρεθεί η τιμή, κάνουμε κλικ στο find δίπλα για να βρούμε την άλλη παρόμοια τιμή, καθώς είναι μια λειτουργία φύλλου μπορεί επίσης να το χρησιμοποιήσει στο VBA ως μέθοδος ιδιοκτησίας εφαρμογής ως application.findnext για τους ίδιους σκοπούς.

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

Σε αυτό το άρθρο, θα σας δείξουμε πώς να χρησιμοποιήσετε αυτό το "Find Next" στο Excel VBA.

Τι είναι το Find Next στο Excel VBA;

Όπως λέει η λέξη "Εύρεση επόμενου" σημαίνει από το κελί που βρέθηκε συνεχίστε να ψάχνετε για την επόμενη τιμή μέχρι να επιστρέψετε στο αρχικό κελί όπου ξεκινήσαμε την αναζήτηση.

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

Ακολουθεί η σύνταξη της μεθόδου FIND NEXT στο Excel VBA.

Μετά: Είναι η λέξη που αναζητούμε.

Παραδείγματα εύρεσης επόμενης μεθόδου στο Excel VBA

Ακολουθούν τα παραδείγματα εύρεσης της επόμενης μεθόδου στο excel VBA.

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

Μπορείτε να πραγματοποιήσετε λήψη αυτού του προτύπου εύρεσης επόμενου Excel VBA εδώ - VBA Πρότυπο εύρεσης επόμενου Excel

Βήμα # 1 - Σε αυτά τα δεδομένα, πρέπει να βρούμε το όνομα της πόλης "Bangalore". Ας ξεκινήσουμε την υποδιαδικασία στον οπτικό βασικό επεξεργαστή.

Κώδικας:

 Υπο RangeNext_Example () End Sub 

Βήμα 2 - Πρώτα, δηλώστε τη μεταβλητή ως αντικείμενο "Range".

Κώδικας:

 Υπο RangeNext_Example () Dim Rng ως Range End Sub 

Βήμα # 3 - Ορίστε την αναφορά για τη μεταβλητή αντικειμένου ως "Range (" A2: A11 ").

Κώδικας:

 Sub RangeNext_Example () Dim Rng As Range Set Rng = Range ("A2: A12") End Sub 

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

Δεδομένου ότι ορίζουμε το εύρος αναφοράς στη μεταβλητή "Rng" χρησιμοποιούμε αυτήν τη μεταβλητή αντί να χρησιμοποιούμε το RANGE ("A2: A11") κάθε φορά.

Βήμα # 4 - Χρησιμοποιήστε τη μεταβλητή RNG και ανοίξτε τη μέθοδο Εύρεση.

Κώδικας:

 Sub RangeNext_Example () Dim Rng As Range Set Rng = Range ("A2: A12") Rng. Find End Sub 

Βήμα # 5 - Το πρώτο επιχείρημα της μεθόδου FIND είναι «Τι», δηλαδή αυτό που προσπαθούμε να αναζητήσουμε στο αναφερόμενο εύρος, οπότε η τιμή που ψάχνουμε είναι «Bangalore».

Κώδικας:

 Sub RangeNext_Example () Dim Rng As Range Set Rng = Range ("A2: A12") Rng. Find What: = "Bangalore" End Sub 

Βήμα # 6 - Για να δείξετε σε ποιο κελί βρήκαμε αυτήν την τιμή δηλώστε μια ακόμη μεταβλητή ως συμβολοσειρά.

Κώδικας:

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12") Rng. Find What: = "Bangalore" End Sub 

Βήμα # 7 - Για αυτήν τη μεταβλητή αντιστοιχίστε τη διεύθυνση κελιού που βρέθηκε.

Κώδικας:

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Find (What: = "Bangalore") Rng. Find What: = "Bangalore" CellAddress = Rng.Address End Sub Sub 

Σημείωση: RNG . Διεύθυνση επειδή το RNG θα έχει την αναφορά για το κελί τιμής που βρέθηκε.

Βήμα # 8 - Τώρα δείξτε το αποτέλεσμα της μεταβλητής διεύθυνσης κυψέλης που έχει εκχωρηθεί στο πλαίσιο μηνύματος στο VBA.

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Find (What: = "Bangalore") Rng. Find What: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress End Υπο 

Βήμα # 9 - Εκτελέστε τον κωδικό και δείτε τι παίρνουμε εδώ.

Βρήκαμε λοιπόν την τιμή "Bangalore" στο κελί A5. Με τη μέθοδο Εύρεση, μπορούμε να βρούμε μόνο ένα κελί, αντί για FIND πρέπει να χρησιμοποιήσουμε το FIND NEXT στο excel VBA.

Βήμα # 10 - Πρέπει να αναφέρουμε τη μεταβλητή αντικειμένου εύρους, αλλά χρησιμοποιώντας τη μέθοδο FIND NEXT στο excel VBA.

Κώδικας:

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Find (What: = "Bangalore") Rng. Find What: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress Set Rng = Εύρος ("A2: A12"). FindNext (Rng) End Sub 

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

Βήμα # 11 - Τώρα εκχωρήστε ξανά τη διεύθυνση κελιού και δείξτε τη διεύθυνση στο πλαίσιο μηνύματος.

Κώδικας:

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Find (What: = "Bangalore") Rng. Find What: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress Set Rng = Range ("A2: A12"). FindNext (Rng) CellAddress = Rng.Address MsgBox CellAddress End Sub 

Βήμα # 12 - Εκτελέστε τη μακροεντολή και δείτε τι παίρνουμε στο πρώτο πλαίσιο μηνύματος.

Βήμα # 13 - Το πρώτο πλαίσιο μηνύματος δείχνει την τιμή "Bangalore" που βρίσκεται στο κελί A5, κάντε κλικ στο κουμπί Ok για να δείτε την επόμενη τιμή που βρέθηκε.

Η δεύτερη τιμή βρέθηκε στο κελί A7, πατήστε OK για να συνεχίσετε.

VBA Find Next (Χρήση βρόχου)

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

Σε αυτήν την περίπτωση, έχουμε επίσης την τιμή "Bangalore" σε περισσότερα από ένα κελιά, οπότε πρέπει να συμπεριλάβουμε βρόχους εδώ.

Βήμα # 14 - Πρώτον, δηλώστε δύο μεταβλητές ως το εύρος.

Κώδικας:

 Υπο RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range End Sub 

Βήμα # 15 - Ορίστε την αναφορά για την πρώτη μεταβλητή όπως φαίνεται παρακάτω.

Κώδικας:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Range ("A2: A11"). Find (What: = "Bangalore") End Sub 

Βήμα # 16 - Για τη δεύτερη μεταβλητή ορίστε την αναφορά χρησιμοποιώντας τη συνάρτηση FIND VBA.

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Range ("A2: A11"). Find (What: = "Bangalore") Set FindRng = Rng.FindNext ("Bangalore") End Sub 

Βήμα # 17 - Πριν ξεκινήσουμε την αναζήτηση για την τιμή πρέπει να προσδιορίσουμε από ποιο κελί ξεκινάμε την αναζήτηση, γιατί δηλώνει τη μεταβλητή ως συμβολοσειρά

Κώδικας:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Range ("A2: A11"). Find (What: = "Bangalore") Set FindRng = Rng.FindNext ("Bangalore") Dim FirstCell As String FirstCell = Rng. Διεύθυνση End Sub 

Βήμα # 18 - Για αυτήν τη μεταβλητή αντιστοιχίστε την πρώτη διεύθυνση κελιού.

Κώδικας:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Range ("A2: A11") Set FindRng = Rng.Find (What: = "Bangalore") Dim FirstCell As String FirstCell = Rng. Διεύθυνση End Sub Sub 

Βήμα # 19 - Τώρα πρέπει να συμπεριλάβουμε το βρόχο "Do While" για να βρούμε όλα τα κελιά και να βρούμε την τιμή αναζήτησης.

Κώδικας:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Range ("A2: A11"). Find (What: = "Bangalore") Set FindRng = Rng.FindNext ("Bangalore") Dim FirstCell As String FirstCell = Rng.Address Do Loop ενώ το FirstCell Cell.Address End Sub 

Μέσα στο βρόχο αναφέρετε το πλαίσιο μηνυμάτων και τη μέθοδο VBA FIND NEXT.

Βήμα # 20 - Ακολουθεί ο πλήρης κωδικός για εσάς.

Κώδικας:

 Sub FindNext_Example () Dim FindValue As String FindValue = "Bangalore" Dim Rng As Range Set Rng = Range ("A2: A11") Dim FindRng As Range Set FindRng = Rng.Find (What: = FindValue) Dim FirstCell As String FirstCell = FindRng.Address Do MsgBox FindRng.Address Set FindRng = Rng.FindNext (FindRng) Loop ενώ FirstCell FindRng.Address MsgBox "Η αναζήτηση έχει τελειώσει" End Sub 

Βήμα # 21 - Αυτό θα συνεχίσει να δείχνει όλη την αντίστοιχη διεύθυνση κελιού και στο τέλος, θα εμφανίσει το μήνυμα ως "Η αναζήτηση έχει τελειώσει" στο νέο πλαίσιο μηνύματος.

Πράγματα που πρέπει να θυμάστε

  • Η μέθοδος FIND μπορεί να βρει μόνο μία τιμή κάθε φορά.
  • ΒΡΕΙΤΕ ΕΠΟΜΕΝΟ στο excel VBA μπορεί να βρει την επόμενη τιμή από το κελί τιμών που ήδη βρέθηκε
  • Χρησιμοποιήστε το βρόχο Do While για να περιηγηθείτε σε όλα τα κελιά της περιοχής.