Verwendung der Find-Funktion in VBA (6 Beispiele)

  • Teile Das
Hugh West

Eine der wichtigsten und am häufigsten verwendeten Funktionen, die wir in Visual Basic-Anwendung (VBA) In diesem Artikel zeige ich Ihnen, wie Sie die Funktion Suchen verwenden können. FIND-Funktion von Excel mit geeigneten Beispielen und Illustrationen.

Download Arbeitsbuch Praxis

Suchfunktion in VBA in Excel.xlsm

6 schnelle Beispiele für die Verwendung der FIND-Funktion in VBA

Hier haben wir einen Datensatz mit dem Buchnamen, Autoren und Preise von einigen Büchern einer Buchhandlung namens Martin Bookstore.

Heute geht es darum, verschiedene Arten der Verwendung des Funktion finden von VBA aus diesem Datensatz.

1. die Suchfunktion in VBA ohne Parameter verwenden

Sie können die Funktion finden von VBA ohne Parameter.

Dann wird nach einem bestimmten Wert innerhalb eines Bereichs von Zellen gesucht und die erste gefundene Übereinstimmung zurückgegeben.

Lassen Sie uns nach dem Namen suchen "P. B. Shelly" in der Spalte Autor ( C4:C13 ).

Die Linie mit dem Funktion finden sein wird:

Set cell = Range("C4:C17").Find("P. B. Shelly")

Die vollständige VBA-Code sein wird:

VBA-Code:

 Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub 

Ausgabe:

Sie erzeugt eine Makro genannt. finden. Wenn Sie das Makro ausführen, wird es folgende Ergebnisse liefern $C$6 die erste Zelladresse mit dem Namen P. B. Shelly .

Lesen Sie mehr: Suchen innerhalb eines Bereichs mit VBA in Excel: Einschließlich exakter und teilweiser Übereinstimmungen

2. die Suchfunktion in VBA mit dem After-Parameter anwenden (um die Suche ab einer bestimmten Zelle zu starten)

Sie können die Nach mit dem Parameter Funktion finden in VBA Dann beginnt die Suche nach einem Wert unterhalb einer Zelle innerhalb eines Bereichs.

Beginnen wir zum Beispiel mit der Suche nach dem Namen "P. B. Shelly" von unten Zelle C6 .

Die Codezeile wird sein:

Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))

Und die vollständige VBA-Code sein wird:

VBA-Code:

 Sub Find() Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")) MsgBox cell.Address End Sub 

Ausgabe:

Es wird zurückgegeben $C$13 weil es die Suche von unten nach oben beginnt C6 das ist von der Zelle C7 So wird es P. B. Shelly in der Zelle C13 Erstens.

Lesen Sie mehr: Suchen einer Zeichenfolge in einer Zelle mit VBA in Excel

3. die Funktion "Find" in VBA mit einem Wrapping um den After-Parameter ausführen (um einen Wert auf kreisförmige Weise zu suchen)

Die Nach mit dem Parameter Funktion finden sucht einen Wert in einem Kreislauf

Das heißt, die Suche beginnt unterhalb einer Zelle innerhalb eines Bereichs, beendet die Suche im Bereich und beginnt dann wieder am oberen Ende des Bereichs.

Beginnen wir zum Beispiel mit der Suche nach dem Namen "John Keats" von unten Zelle C8 unter Verwendung der Nach Parameter.

Die Codezeile wird sein:

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

Und die vollständige VBA-Code sein wird:

VBA-Code:

 Sub Find() Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8")) MsgBox cell.Address End Sub 

Ausgabe:

Es wird zurückgegeben $C$7 weil es die Suche von unten nach oben beginnt C8 das ist von der Zelle C9 .

Es findet nichts bis zur Zelle C13 und beginnt somit wieder in der Zelle C4 und findet eine in der Zelle C7 .

Ähnliche Lektüre:

  • Wie man mit VBA in Excel eine Zeichenfolge findet (8 Beispiele)
  • Exakte Übereinstimmung mit VBA in Excel finden (5 Möglichkeiten)
  • Suchen und Ersetzen mit VBA (11 Möglichkeiten)

4. die Suchfunktion in VBA mit dem LookAt-Parameter verwenden (für exakte oder partielle Übereinstimmung)

Sie können die Funktion finden in VBA mit dem LookAt Parameter.

Verwenden Sie LookAt = xlWhole für eine Genau übereinstimmen, und LookAt=xlPart für eine Teilweise übereinstimmen.

Versuchen wir zum Beispiel herauszufinden, ob es ein Buch mit dem Namen "Ode" im Buch Name Spalte ( B4:B13 ).

Wenn wir die xlGanzes in der Code-Zeile:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

Die Ausgabe zeigt einen Fehler an, weil sie keine genau übereinstimmen.

Aber wenn Sie verwenden:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

Dann wird es zurückkehren $B$9 denn es gibt ein Buch mit dem Namen "Ode" darin in Zelle B7 Ode an die Nachtigall.

Der vollständige Code für die teilweise Spiel ist:

VBA-Code:

 Sub Find() Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart) MsgBox cell.Address End Sub 

5. die Funktion "Suchen" in VBA mit dem Parameter "SearchDirection" bedienen (um die Richtung der Suche festzulegen)

Sie können auch die Funktion finden in VBA mit dem SearchDirection Parameter.

Verwenden Sie SearchDirection = xlNext für die Suche von Von oben nach unten .

Und SearchDirection = xlPrevious für die Suche von Von unten nach oben .

Versuchen wir zum Beispiel, den Autor zu finden Elif Shafak in der Spalte Autor ( C4:C13 ).

Wenn wir die xlNächste in der Code-Zeile:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

Dann wird sie zurückkehren $C$5 .

Aber wenn Sie verwenden:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)

Dann wird es zurückkehren $C$11 .

Der vollständige Code für die Suche von von unten nach oben ist:

VBA-Code:

 Sub Find() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub 

6. die Suchfunktion in VBA mit MatchCase-Parameter (für Groß-/Kleinschreibung beachtende oder nicht beachtende Übereinstimmung)

Schließlich können Sie die Funktion finden mit dem MatchCase Parameter.

Verwenden Sie MatchCase = Wahr für eine Groß- und Kleinschreibung Spiel , und MatchCase=False für eine Groß- und Kleinschreibung wird nicht berücksichtigt übereinstimmen.

Versuchen wir zum Beispiel, das Buch zu finden "Mutter" im Buch Name Spalte ( B4:B13 ).

Wenn wir True in der Code-Zeile verwenden:

Set cell = Range("B4:B13").Find("Mutter", MatchCase:=True)

In der Ausgabe wird ein Fehler angezeigt, da keine Übereinstimmung gefunden wird.

Aber wenn Sie verwenden:

Set cell = Range("B4:B13").Find("Mutter", MatchCase:=False)

Dann wird es zurückkehren $B$9 denn es gibt ein Buch namens "Mutter" in der Zelle B8 .

Der vollständige Code für die Groß- und Kleinschreibung wird nicht berücksichtigt Spiel ist:

VBA-Code:

 Sub Find() Set cell = Range("B4:B13").Find("Mutter", MatchCase:=False) MsgBox cell.Address End Sub 

Schlussfolgerung

Mit diesen Methoden können Sie die Suchfunktion in einer Visual Basic-Anwendung verwenden. Wenn Sie Fragen haben, können Sie uns diese gerne stellen.

Hugh West ist ein äußerst erfahrener Excel-Trainer und -Analyst mit über 10 Jahren Erfahrung in der Branche. Er verfügt über einen Bachelor-Abschluss in Rechnungswesen und Finanzen sowie einen Master-Abschluss in Betriebswirtschaft. Hugh hat eine Leidenschaft für das Unterrichten und hat einen einzigartigen Lehransatz entwickelt, der leicht zu befolgen und zu verstehen ist. Seine Expertenkenntnisse in Excel haben Tausenden von Studenten und Berufstätigen auf der ganzen Welt geholfen, ihre Fähigkeiten zu verbessern und in ihrer Karriere herausragende Leistungen zu erbringen. Über seinen Blog teilt Hugh sein Wissen mit der Welt und bietet kostenlose Excel-Tutorials und Online-Schulungen an, um Einzelpersonen und Unternehmen dabei zu helfen, ihr volles Potenzial auszuschöpfen.