VBA-Suchfunktion - Wie verwende ich die VBA-Suchfunktion? (Beispiele)

Inhaltsverzeichnis

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 zu finden, wo zu finden und wo zu suchen.

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 was 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 definierte Bereiche, z. B. 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, was 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 die Suchfunktion enthält viele Einschränkungen. Die Suchfunktion ähnelt der Suchfunktion in Excel.

Der Parameter für die Suchfunktion ist der Zellenbereich, z. B. in welchem ​​Bereich wir einen Wert suchen möchten. Es können einige Spalten oder wenige Zellen oder ein ganzes Arbeitsblatt sein.

Beispiele

Beispiel 1

Angenommen, unsere Daten haben die folgenden Werte

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

  • Um einen VBA-Code schreiben zu können, 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:
Sub Sample ()
DimFindS As String
Dim Rng As Range
FindS = InputBox ("Geben Sie den Wert ein, den Sie suchen möchten")
With Sheets ("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 unseren Code zuerst ausführen, werden Sie 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.

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

Schreiben wir den Code für die obigen Daten.

  • Denken Sie immer daran, die Registerkarte Entwickler über Optionen und dann über das Anpassen der Multifunktionsleiste in Excel zu aktivieren, um den Code in VBA schreiben zu können.
  • In VBA erhalten wir Microsoft Excel-Objekte, ein Modul, in das wir die Codes schreiben.
  • Zuvor 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.
  • Jetzt haben wir unsere Funktion definiert; Wir werden uns mit dem Hauptteil befassen, 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.

Interessante Beiträge...