VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: Find-Methode

Sucht bestimmte Informationen in einem Bereich und gibt ein Range-Objekt zurück, das die erste Zelle mit diesem Inhalt darstellt. Gibt Nothing zurück, wenn keine Übereinstimmung gefunden wird. Die Methode bleibt ohne Wirkung auf die aktuelle Markierung oder die aktive Zelle.

Informationen über die Verwendung der Tabellenfunktion Finden in Visual Basic finden Sie unter Verwenden von Tabellenfunktionen in Visual Basic.

Syntax

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

Ausdruck   Erforderlich. Ein Ausdruck, der ein Range-Objekt zurückgibt.

What   Variant erforderlich. Der Inhalt, nach dem gesucht werden soll. Dabei kann es sich um eine Zeichenfolge oder einen beliebigen Microsoft Excel-Datentyp handeln.

After   Variant optional. Gibt die Zelle an, nach der die Suche beginnen soll. Dies entspricht der Position der aktiven Zelle, wenn eine Suche von der Benutzeroberfläche aus durchgeführt wird. Bitte beachten Sie, dass After eine einzelne Zelle im Bereich sein muss. Beachten Sie, dass die Suche nach dieser Zelle beginnt, die angegebene Zelle wird also erst durchsucht, wenn der Suchlauf zur Ausgangszelle zurückkehrt. Wird das Argument nicht angegeben, so ist die obere linke Zelle des Bereichs der Startpunkt für die Suche.

LookIn   Variant optional. Zulässig ist eine der folgenden XlFindLookIn-Konstanten: xlFormulas, xlValues oder xlComments.

LookAt   Variant optional. Zulässig sind die XlLookAt-Konstanten xlPart oder xlWhole.

SearchOrder   Variant optional. Zulässig sind die XlSearchOrder-Konstanten xlByColumns oder xlByRows.

SearchDirection   Variant optional. Zulässig sind die XlSearchDirection-Konstanten xlNext oder xlPrevious. Die Standardkonstante ist xlNext.

MatchCase   Variant optional. Wenn True, wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden. Der Standardwert ist False.

MatchByte   Variant optional. Wird nur verwendet, wenn double byte-Sprachunterstützung ausgewählt oder installiert wurde. Wenn True, werden double byte-Zeichen nur mit double byte-Zeichen verglichen. Wenn False, so können double byte-Zeichen mit den entsprechenden single byte-Zeichen übereinstimmen.

Anmerkungen

Die Angaben für LookIn, LookAt, SearchOrder und MatchByte werden jedesmal gespeichert, wenn Sie diese Methode verwenden. Falls Sie beim nächsten Aufruf dieser Methode keine Werte für die Argumente angeben, werden die gespeicherten Werte verwendet. Die Angabe dieser Argumente ändert die Einstellungen im Dialogfeld Suchen, und eine Änderung der Einstellungen im Dialogfeld Suchen ändert die gespeicherten Werte, die verwendet werden, wenn Sie die Argumente nicht angeben. Um Probleme zu vermeiden, sollten Sie bei jeder Verwendung dieser Methode diese Argumente ausdrücklich angeben.

Mit den Methoden FindNext und FindPrevious können Sie die Suche mit denselben Kriterien wiederholen.

Erreicht die Suche das Ende des angegebenen Suchbereichs, beginnt sie erneut am Anfang dieses Bereichs. Um zu verhindern, dass der Bereich erneut durchsucht wird, speichern Sie die Adresse der zuerst gefundenen Zelle, und vergleichen Sie dann jede nachfolgend 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 in Kombination mit dem Like-Operator einsetzen. Der folgende Code durchsucht beispielsweise alle Zellen im Bereich A1:C5 nach einer Zelle, deren Schriftart mit den Buchstaben "Cour" anfängt. Im Falle einer Übereinstimmung wird die Schriftart in Times New Roman geändert:

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