VBA FIND

Excel VBA-Suche

Wenn wir in einem normalen Arbeitsblatt Suchen verwenden, drücken wir die Tastenkombination STRG + F und geben die zu suchenden Daten ein. Wenn der gewünschte Wert nicht erreicht ist, fahren wir mit der nächsten Übereinstimmung fort. Wenn es viele solcher Übereinstimmungen gibt, ist dies eine mühsame Aufgabe, aber wann Wir verwenden FIND in VBA, es erledigt die Aufgaben für uns und gibt uns die genaue Übereinstimmung. Es werden drei Argumente benötigt: eines ist, was zu finden ist, wo zu finden ist und wo zu suchen ist.

Bevor wir zu VBA wechseln und die Suchfunktion in Makros verwenden, müssen wir zunächst lernen, was eine Suchfunktion in Excel ist. In normalem Excel finden Sie auf der Registerkarte "Startseite" unter der Bearbeitungsgruppe eine Suchfunktion, mit der eine Zeichenfolge oder ein Wert in einem Zellbereich oder einem gesamten Arbeitsblatt gesucht wird.

Wenn wir darauf klicken, erhalten wir zwei Optionen;

Einer ist einfach zu finden,

Wir können sehen, dass es auch einen Optionsmodus gibt, der eine weitere Funktion eröffnet.

Es führt den Suchalgorithmus mit vier Einschränkungen aus: Suchen nach, Innerhalb, Suchen und Suchen.

Die zweite Option in Excel ist das Suchen und Ersetzen, die verwendet wird, wenn eine Zeichenfolge gefunden wird, aber durch einen anderen Wert ersetzt werden soll.

Funktionssyntax suchen

Wir haben oben gelernt, was Find in Basic Excel ist. In VBA schreiben wir Codes manuell, aber die Funktionen sind die gleichen wie bei normalem Excel. Schauen wir uns zunächst die Syntax an.

Expression.Find (Was, schau, ...)

Wenn der gesuchte Wert mit der Excel-Funktion gefunden wird, wird die Zelle zurückgegeben, in der sich der Wert befindet, und wenn der Wert nicht gefunden wird, wird das Objekt der Funktion auf nichts gesetzt.

Ausdrücke in Makros sind Bereiche wie Bereich 1 oder Bereich 2. Was ist ein Schlüsselwort für das, wonach wir nach einem bestimmten Wert suchen möchten? Lookin ist ein Schlüsselwort für das, wonach wir suchen, ein Kommentar, eine Formel oder eine Zeichenfolge. Ebenso gibt es andere Einschränkungen in der Suchfunktion, die optional sind. Das einzige erforderliche Pflichtfeld ist der Wert, den wir suchen möchten.

Grundsätzlich stellt VBA fest, dass Excel ein erforderliches Argument hat: Welchen Wert möchten wir suchen? Der Rest der Einschränkungen ist optional und es gibt viele Einschränkungen in der Suchfunktion. Die Suchfunktion ähnelt der Suchfunktion in Excel.

Der Parameter für die Suchfunktion ist der Zellenbereich. Wie in welchem ​​Bereich wollen wir einen Wert finden. Es können einige Spalten oder wenige Zellen oder ein ganzes Arbeitsblatt sein.

Beispiele

Sie können diese VBA FIND Function Excel-Vorlage hier herunterladen - VBA FIND Function Excel-Vorlage

Beispiel 1

Angenommen, unsere Daten haben die folgenden Werte

Wir werden versuchen, "Aran" in denselben Daten zu finden.

  • Um einen VBA-Code zu schreiben, muss die Registerkarte Entwickler in Excel aktiviert sein, damit VBA-Codes geschrieben werden können.

  • Wir beginnen mit dem Schreiben unseres Codes, indem wir den folgenden Code wie unten gezeigt schreiben:
Unterprobe ()

Dim FindS As String

Dim Rng As Range

FindS = InputBox ("Geben Sie den Wert ein, den Sie suchen möchten")

Mit Blättern ("Sheet1") .Range ("A: A")

  • Das Beispiel ist der Funktionsname, der dem Sub gegeben wurde.
  • Suchen ist die Zeichenfolge, die der Benutzer, den wir eingeben möchten, für die Suche verwenden soll.
  • Rng ist die Variable, die wir für den Bereich verwendet haben.
  • Nun bitten wir den Benutzer, den Wert einzugeben, der wie im folgenden Screenshot aussieht.

  • Jetzt definieren wir unsere Suchfunktion im Modul.

  • Die Funktion findet den vom Benutzer eingegebenen Wert im angegebenen Bereich.
  • Jetzt schließen wir die Funktion mit den folgenden Argumenten.

  • Wenn wir nun zuerst unseren Code ausführen, werden wir vom Benutzer aufgefordert, einen Wert einzugeben.

  • Sobald der Code fertig ist, wird die Zelle an den Ort zurückgegeben, an dem die Daten gefunden wurden.

Beispiel 2

Im obigen Beispiel gab es vier eindeutige Namen, aber was ist, wenn die Daten mehr als einen Namen enthalten, z. B. die folgenden Daten?

Wir können sehen, dass der Name Aran in den obigen Daten zweimal wiederholt wird. Wenn Excel den Namen Aran finden muss, findet es ihn in Zelle A2 und stoppt, aber es gibt einen anderen Wert ähnlich dem von A2 in Zelle A6. Wie kann man diesen Wert abrufen? Hier kommt die Syntax von Find (What, After) in der Hilfe.

Nach definiert die Zelle, nach welcher Referenz wir die Daten durchsuchen möchten.

Schreiben wir den Code für die obigen Daten.

  • Denken Sie immer daran, die Registerkarte Entwickler über Optionen und dann über das Menüband in Excel anzupassen, um den Code in VBA schreiben zu können.
  • In VBA erhalten wir Microsoft Excel-Objekte, ein Modul, in das wir die Codes schreiben.

  • Früher haben wir an Blatt 1 gearbeitet, jetzt arbeiten wir an Blatt 2, wählen Sie also Blatt 2 für ein anderes Modul aus, und eine leere Seite wird angezeigt.

  • Beginnen Sie nun mit dem Schreiben des Codes, indem Sie die Funktion zuerst als SUB Sample2 () definieren und die Eingabetaste drücken.

  • Nachdem wir unsere Funktion definiert haben, beginnen wir mit dem Hauptteil, der unsere Variablen definiert.

  • Definieren Sie, was die Find-Variable haben soll.

  • Wählen Sie die Blätter aus, an denen wir arbeiten. In diesem Beispiel handelt es sich um Blatt 2:

  • Jetzt finden wir den Text, was auch immer der Benutzer nach der A2-Zelle eingibt, und definieren unsere Suchfunktion wie folgt:

  • Jetzt schließen wir den Code, indem wir die Bedingungen mit und if beenden.

Der obige Code durchsucht die Zeichenfolge nach der Zelle A2 und gibt die Zelle dort zurück, wo sie gefunden wurde.

Dinge, an die man sich erinnern sollte

  1. Zuerst müssen wir die Registerkarte Entwickler aktivieren, um VBA verwenden zu können.
  2. Was ist der spezifische Wert, den wir finden müssen?
  3. Wird der Wert nicht gefunden, wird das Objekt der Funktion auf nichts gesetzt.