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.
Ausdruck.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Ausdruck Eine Variable, die ein Range-Objekt darstellt.
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. |
Ein Range-Objekt, das die erste Zelle darstellt, in der nach diesen Informationen gesucht wird.
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`
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
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.