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.

ArrowRawData

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.

ArrowCallingFunction

Das Makro „HighlightMatchingResult“ hebt die Zelle hervor, die den passenden Firmennamen mit der gelben Farbe enthält.

ArrowOutput

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]