Finden-Methode des Range-Objekt
In diesem Artikel verwenden wir die find-Methode des Range-Objekts, um die Zelle hervorzuheben, die den Wert enthält, der Suchwörtern ähnelt.
Die 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 finden 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 hervor, die den passenden Firmennamen mit der gelben Farbe enthält.
Logische Erklä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, deren Wert dem gesuchten Firmennamen ähnelt.
Das Makro „HighlightMatchingResult“ ruft die benutzerdefinierte Funktion auf und hebt den von der benutzerdefinierten Funktion zurückgegebenen Bereich in gelber Farbe hervor.
Code Erklä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 in 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 Explicit Function FindRange(FindItem As Variant, SearchRange As Range) As Range 'Declaring variables Dim MatchingRange As Range Dim FirstAddress As String With SearchRange 'Finding the range whose value match with FindItem Set MatchingRange = .Find(What:=FindItem) 'Checking whether any match exist If Not MatchingRange Is Nothing Then Set FindRange = MatchingRange 'Getting the address of first matching range FirstAddress = MatchingRange.Address Do 'Union of all the ranges whose value match with FindItem Set FindRange = Union(FindRange, MatchingRange) 'Finding the next range whose value match with 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 by user from cell I8 UserInput = Range("I8").Value 'Calling FindRange custom function Set MappingRange = FindRange(UserInput, ActiveSheet.Columns("A")) 'Highlighting the mapped range with Yellow color MappingRange.Interior.Color = RGB(255, 255, 0) End Sub
Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]