Σε αυτό το άρθρο, θα χρησιμοποιήσουμε τη μέθοδο εύρεσης αντικειμένου Εύρους για να επισημάνουμε το κελί που περιέχει την τιμή παρόμοια με τις λέξεις αναζήτησης.
Τα ανεπεξέργαστα δεδομένα για αυτό το παράδειγμα αποτελούνται από το όνομα της εταιρείας, το αναγνωριστικό υπαλλήλου και το όνομα του υπαλλήλου. Έχουμε ακατέργαστα δεδομένα από διαφορετικές εταιρείες.
Σε αυτό το παράδειγμα, θέλουμε να βρούμε και να επισημάνουμε το κελί που ταιριάζει με το συγκεκριμένο όνομα εταιρείας στο κελί I8.
Για να επισημάνετε τα κελιά με συγκεκριμένα ονόματα εταιρειών, εισαγάγετε το όνομα της εταιρείας στο κελί I8 και κάντε κλικ στο κουμπί "Υποβολή". Στο κουμπί "Υποβολή" εκχωρείται μακροεντολή "HighlightMatchingResult".
Η μακροεντολή "HighlightMatchingResult" θα επισημάνει το κελί που περιέχει το αντίστοιχο όνομα εταιρείας με κίτρινο χρώμα.
Λογική εξήγηση
Σε αυτό το παράδειγμα, έχουμε δημιουργήσει μια προσαρμοσμένη λειτουργία "FindRange" και μια μακροεντολή "HighlightMatchingResult".
Η προσαρμοσμένη λειτουργία "FindRange" θα δημιουργήσει ένα εύρος με όλα τα κελιά που περιέχουν τιμή παρόμοια με το όνομα της εταιρείας που αναζητήσατε.
Η μακροεντολή "HighlightMatchingResult" θα καλέσει την προσαρμοσμένη λειτουργία και θα επισημάνει το εύρος που επιστρέφει η προσαρμοσμένη συνάρτηση σε κίτρινο χρώμα.
Επεξήγηση κώδικα
SearchRange.Find (Τι: = FindItem)
Ο παραπάνω κώδικας χρησιμοποιείται για την εύρεση του κελιού που περιέχει τιμή παρόμοια με το FindItem.
Ένωση (FindRange, MatchingRange)
Ο παραπάνω κώδικας χρησιμοποιείται για να συνδυάσει δύο εύρη σε ένα μόνο εύρος.
SearchRange.FindNext (MatchingRange)
Ο παραπάνω κώδικας χρησιμοποιείται για την εύρεση του επόμενου κελιού που περιέχει τιμή παρόμοια με το FindItem.
Ακολουθήστε παρακάτω για τον κωδικό
Επιλογή ρητή συνάρτηση FindRange (FindItem As Variant, SearchRange As Range) As Range 'Δήλωση μεταβλητών Dim MatchingRange As Range Dim FirstAddress As String With SearchRange' Εύρεση του εύρους του οποίου η τιμή ταιριάζει με το FindItem Set MatchingRange =. Find (What: = FindItem) 'Έλεγχος αν υπάρχει αντιστοίχιση Εάν το Not MatchingRange δεν είναι τίποτα τότε ορίστε FindRange = MatchingRange 'Λήψη της διεύθυνσης του πρώτου εύρους αντιστοίχισης FirstAddress = MatchingRange.Address Do' Ένωση όλων των περιοχών των οποίων η τιμή ταιριάζει με το FindItem Set FindRange = Union (FindRange, MatchingRange) 'Εύρεση το επόμενο εύρος του οποίου η τιμή ταιριάζει με το FindItem Set MatchingRange = .FindNext (MatchingRange) Loop while MatchingRange.Address FirstAddress End If End with End Function Sub HighlightMatchingResult () 'Declaring variables Dim MappingRange As Range Dim UserInput As String' Getting value input from user from κελί I8 UserInput = Εύρος ("I8"). Τιμή "Κλήση προσαρμοσμένης λειτουργίας FindRange Set MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Επισήμανση της αντιστοιχισμένης περιοχής με κίτρινο χρώμα MappingRange.Interior.Color = RGB (255, 255, 0) Τέλος υπο
Αν σας άρεσε αυτό το blog, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.
Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email