Range.Find-Methode (Excel)

Sucht bestimmte Informationen in einem Bereich.

Hinweis

Haben Sie Interesse an der Entwicklung von Lösungen, mit denen die Funktionen von Office über mehrere Plattformen erweitert werden können? Schauen Sie sich das neue Office-Add-In-Modell an. Office-Add-Ins haben im Vergleich zu VSTO-Add-Ins und -Lösungen einen geringen Platzbedarf. Sie können sie mit fast jeder Web-Programmiertechnologie erstellen, z. B. HTML5, JavaScript, CSS3 und XML.

Syntax

Ausdruck.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Ausdruck Eine Variable, die ein Range-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
What Erforderlich Variant Der Inhalt, nach dem gesucht werden soll. Dabei kann es sich um eine Zeichenfolge oder einen beliebigen Microsoft Excel-Datentyp handeln.
After Optional Variant Die Zelle, nach der mit der Suche begonnen werden soll. Dies entspricht der Position der aktiven Zelle, wenn eine Suche über die Benutzeroberfläche durchgeführt wird.

Beachten Sie, dass After eine einzelne Zelle im Bereich sein muss. Denken Sie daran, dass die Suche nach dieser Zelle beginnt; die angegebene Zelle wird nicht durchsucht, bis die Methode wieder auf diese Zelle umgebrochen wird.

Wenn Sie dieses Argument nicht angeben, beginnt die Suche nach der Zelle in der oberen linken Ecke des Bereichs.
LookIn Optional Variant Kann eine der folgenden XlFindLookIn-Konstanten sein: xlFormulas, xlValues, xlComments oder xlCommentsThreaded.
LookAt Optional Variant Kann eine der folgenden XlLookAt-Konstanten sein: xlWhole oder xlPart.
SearchOrder Optional Variant Kann eine der folgenden XlSearchOrder-Konstanten sein: xlByRows oder xlByColumns.
SearchDirection Optional Variant Kann eine der folgenden XlSearchDirection-Konstanten sein: xlNext oder xlPrevious.
MatchCase Optional Variant Mit True wird die Groß- und Kleinschreibung bei der Suche berücksichtigt. Der Standardwert ist False.
MatchByte Optional Variant Wird nur verwendet, wenn Sie Double-Byte-Sprachunterstützung ausgewählt oder installiert haben. True, damit Double-Byte-Zeichen nur mit Double-Byte-Zeichen abgeglichen werden. False, damit Double-Byte-Zeichen mit ihren Single-Byte-Zeichen abgeglichen werden.
SearchFormat Optional Variant Das Format für die Suche.

Rückgabewert

Ein Range-Objekt, das die erste Zelle darstellt, in der nach diesen Informationen gesucht wird.

Bemerkungen

Diese Methode gibt Nothing zurück, wenn keine Übereinstimmung gefunden wird. Die Find-Methode wirkt sich nicht auf die Auswahl oder aktive Zelle aus.

Die Einstellungen für LookIn, LookAt, SearchOrder und MatchByte werden gespeichert, sobald Sie diese Methode verwenden. Falls Sie beim nächsten Aufruf dieser Methode keine Werte für die Argumente angeben, werden die gespeicherten Werte verwendet. Das Festlegen dieser Argumente ändert die Einstellungen im Dialogfeld Suchen, und durch Ändern der Einstellungen im Dialogfeld Suchen werden die gespeicherten Werte geändert, die verwendet werden, wenn Sie die Argumente auslassen. Um Probleme zu vermeiden, legen Sie diese Argumente jedes Mal explizit fest, wenn Sie diese Methode verwenden.

Verwenden Sie die FindNext und FindPrevious -Methoden, um die Suche zu wiederholen.

Wenn die Suche das Ende des angegebenen Suchbereichs erreicht, erfolgt ein Umbruch zum Anfang des Bereichs. Um eine Suche bei einem Umbruch zu beenden, speichern Sie die Adresse der ersten gefundenen Zelle, und testen Sie dann jede nachfolgende gefundene Zelladresse mit dieser gespeicherten Adresse.

Wenn Sie bei der Suche von Zellen ein komplexeres Suchmuster verwenden wollen, können Sie eine For Each...Next-Anweisung mit dem Like-Operator verwenden. Der folgende Code sucht z. B. alle Zellen im Bereich A1:C5, die eine Schriftart verwenden, deren Name mit den Buchstaben „Cour“ beginnt. Wenn Microsoft Excel eine Übereinstimmung findet, ändert es die Schriftart in Times New Roman.

For Each c In [A1:C5] If c.Font.Name Like "Cour*" Then c.Font.Name = "Times New Roman" End If Next`

Beispiele

In diesem Beispiel werden alle Zellen im Bereich A1:A500 auf dem ersten Arbeitsblatt gefunden, die den Wert 2 enthalten, und der gesamte Zellenwert zu 5 geändert. Das heißt, dass die Werte 1234 und 99299 beide 2 enthalten und beide Zellwerte 5 ergeben.

Sub FindValue()
    
    Dim c As Range
    Dim firstAddress As String

    With Worksheets(1).Range("A1:A500") 
        Set c = .Find(2, lookin:=xlValues) 
        If Not c Is Nothing Then 
            firstAddress = c.Address 
            Do 
                c.Value = 5 
                Set c = .FindNext(c) 
            Loop While Not c Is Nothing
        End If 
    End With
    
End Sub

In diesem Beispiel werden alle Zellen im Bereich A1:A500 des ersten Arbeitsblatts gefunden, die die Teilzeichenfolge „abc“ enthalten, und „abc“ wird durch „xyz“ ersetzt.

Sub FindString()

    Dim c As Range
    Dim firstAddress As String

    With Worksheets(1).Range("A1:A500")
        Set c = .Find("abc", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Value = Replace(c.Value, "abc", "xyz")
                Set c = .FindNext(c)
            Loop While Not c Is Nothing
        End If
    End With

End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.