Find-Methode des Range-Objekts

Anonim

In diesem Artikel verwenden wir die find-Methode des Range-Objekts, um die Zelle hervorzuheben, die den Suchwort ähnlichen Wert enthält.

Rohdaten für dieses Beispiel bestehen aus Firmenname, Mitarbeiter-ID und Mitarbeitername. Wir haben Rohdaten von verschiedenen Unternehmen.

In diesem Beispiel möchten wir die Zelle suchen und hervorheben, die mit einem bestimmten definierten Firmennamen in Zelle I8 übereinstimmt.

Um die Zellen mit bestimmten Firmennamen hervorzuheben, geben Sie den Firmennamen in Zelle I8 ein und klicken Sie auf die Schaltfläche „Senden“. Der Schaltfläche „Senden“ ist das Makro „HighlightMatchingResult“ zugewiesen.

Das Makro "HighlightMatchingResult" hebt die Zelle, die den passenden Firmennamen enthält, mit gelber Farbe hervor.

Logikerklärung

In diesem Beispiel haben wir eine benutzerdefinierte Funktion „FindRange“ und ein Makro „HighlightMatchingResult“ erstellt.

Die benutzerdefinierte Funktion „FindRange“ erstellt einen Bereich mit allen Zellen, die einen ähnlichen Wert wie der gesuchte Firmenname enthalten.

Das Makro "HighlightMatchingResult" ruft die benutzerdefinierte Funktion auf und hebt den von der benutzerdefinierten Funktion zurückgegebenen Bereich in gelber Farbe hervor.

Codeerklärung

SearchRange.Find(What:=FindItem)

Der obige Code wird verwendet, um die Zelle zu finden, die einen ähnlichen Wert wie FindItem enthält.

Union(FindRange, MatchingRange)

Der obige Code wird verwendet, um zwei Bereiche zu einem einzigen Bereich zu kombinieren.

SearchRange.FindNext(MatchingRange)

Der obige Code wird verwendet, um die nächste Zelle zu finden, die einen ähnlichen Wert wie FindItem enthält.

Bitte folgen Sie unten für den Code

 Option Explizite Funktion FindRange(FindItem As Variant, SearchRange As Range) As Range 'Deklarieren von Variablen Dim MatchingRange As Range Dim FirstAddress As String With SearchRange 'Finden des Bereichs, dessen Wert mit FindItem übereinstimmt Set MatchingRange = .Find(What:=FindItem) 'Checking ob eine Übereinstimmung existiert If Not MatchingRange Is Nothing Then Set FindRange = MatchingRange 'Ermitteln der Adresse des ersten übereinstimmenden Bereichs FirstAddress = MatchingRange.Address Do 'Vereinigung aller Bereiche, deren Wert mit FindItem übereinstimmt Set FindRange = Union(FindRange, MatchingRange) 'Finding der nächste Bereich, dessen Wert mit FindItem übereinstimmt Set MatchingRange = .FindNext(MatchingRange) Loop While MatchingRange.Address FirstAddress End If End With End Function Sub HighlightMatchingResult() 'Variablen deklarieren Dim MappingRange As Range Dim UserInput As String 'Werteingabe vom Benutzer erhalten von Zelle I8 UserInput = Range("I8").Value 'Aufruf der benutzerdefinierten FindRange-Funktion Set MappingRange = FindRange(UserInput, ActiveSheet.C olumns("A")) 'Hervorheben des abgebildeten Bereichs mit gelber Farbe MappingRange.Interior.Color = RGB(255, 255, 0) End Sub 

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site