Excel VBA-Suchfunktion

In Excel haben wir VLookup oft verwendet. In der Insert-Funktion können beliebige Werte abgerufen oder zugeordnet werden. In ähnlicher Weise haben wir in VBA eine Lookup- Anwendung, die genauso funktioniert wie Excel Vlookup. VBA-Lookup verfügt über eine flexible Datenstruktur, mit der beliebige Werte aus beliebigen Tabellenarrays zugeordnet werden können. Wenn wir also Excel Vlookup anwenden, können wir die Daten der rechten Spalte nicht mit den Daten der linken Spalte in einer Syntax abbilden. Während in der VBA-Suche keine ordnungsgemäße Struktur der Zuordnung vorhanden ist. Wir müssen nur die Syntax von VBA Lookup befolgen. Wenn die Syntax erfüllt und richtig eingerahmt ist, können wir die Werte von der rechten oder linken Seite der Tabelle abrufen.

Syntax der VBA-Suchfunktion:

Wo,

  • Arg1 = Wert, nach dem wir suchen möchten.
  • Arg2 = Bereich der Spalten oder Tabellen, in denen gesucht werden soll .
  • Arg3 = Ergebnis als Boolean oder Vector.

Wie verwende ich die Suchfunktion in Excel VBA?

Wir werden lernen, wie die Suchfunktion in Excel mithilfe des VBA-Codes verwendet wird.

Sie können diese VBA-Lookup-Excel-Vorlage hier herunterladen - VBA-Lookup-Excel-Vorlage

VBA-Suche - Beispiel # 1

Es gibt viele Möglichkeiten, den VBA-Lookup-Code zu schreiben. In diesem Beispiel sehen wir eine einfache Möglichkeit, die VBA-Suche zu schreiben. Dafür haben wir einen Datensatz wie unten gezeigt. Diese Tabelle enthält die Anzahl der Rennen und die Durchschnittsgeschwindigkeit der Rennfahrer. Jetzt werden wir diese Daten verwenden, um die VBA-Suche in der folgenden Tabelle mit den blauen Überschriften in A8 bis B8 anzuwenden. Führen Sie dazu die folgenden Schritte aus:

Schritt 1: Öffnen Sie ein Modul über die Registerkarte Einfügen (siehe unten).

Schritt 2: Schreiben Sie die Unterprozedur für die in diesem Modul ausgeführte Arbeit. Hier haben wir den Namen als VBA Lookup gewählt.

Code:

 Sub VBA_Lookup1 () End Sub 

Schritt 3: Wählen Sie die Ausgabezelle aus, in der der Suchwert angezeigt werden soll. Hier ist die Zelle B9, in der wir nach dem Wert für den Namen "Aniket" suchen, der unser Nachschlagewert ist.

Code:

 Sub VBA_Lookup1 () Range ("B9"). Value End Sub 

Schritt 4: Jetzt verwenden wir die Arbeitsblattfunktion und wählen die eingebaute Suchfunktion in der Liste aus (siehe unten).

Code:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup End Sub 

Schritt 5: Sobald wir die Suchfunktion ausgewählt haben, sehen wir Arg1, Arg2 und Arg3 in ihrer Syntax. Dazu setzen wir zuerst unseren Wertebereich Lookup, also Zelle A9, anstelle von Arg1.

Code:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, End Sub 

Schritt 6: Wählen Sie nun für Arg2 den Suchbereich aus Zelle A2: A5 aus.

Code:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, Range ("A2: A5"), End Sub 

Schritt 7: Wählen Sie zuletzt Nachschlagewertebereiche von B2 bis B5 anstelle von Arg3 aus.

Code:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, Range ("A2: A5"), Range ("B2: B5")) End Sub 

Schritt 8: Führen Sie den Code aus, indem Sie die Taste F5 drücken oder auf die Wiedergabetaste unter dem Menüband klicken. Wir werden sehen, dass laut Lookup die Anzahl der Rennen mit dem Namen "Aniket" 7 ist.

VBA-Suche - Beispiel # 2

Es gibt eine andere Möglichkeit, eine Suchfunktion in Excel VBA anzuwenden. Dazu werden wir dieselben Daten verwenden, die wir in Beispiel 1 gesehen haben. Führen Sie dazu die folgenden Schritte aus:

Schritt 1: Schreiben Sie die unten gezeigte Unterprozedur für die VBA-Suche.

Code:

 Sub VBA_Lookup2 () End Sub 

Schritt 2: Definieren Sie eine Variable als String, mit der die Name-Spalte zugeordnet wird.

Code:

 Sub VBA_Lookup2 () Dim Name As String End Sub 

Schritt 3: In der definierten Variablen Name werden wir die Vlookup- Anwendung wie unten gezeigt anwenden.

Code:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup (End Sub 

Schritt 4: Nehmen wir an, unser Suchwert heißt "Ashwani" aus der Tabelle.

Code:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", End Sub 

Schritt 5: Und der Bereich reicht von A1 bis C6 von Sheet1.

Code:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), End Sub 

Schritt 6: Wenn wir nun die Durchschnittsgeschwindigkeit des Fahrers „Ashwani“ hier sehen möchten, müssen wir die Zelle in der Lookup-Syntax zuordnen, die sich an dritter Stelle befindet.

Code:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) End Sub 

Schritt 7: Um nun die Durchschnittsgeschwindigkeit des Fahrers „Ashwani“ zu sehen, können wir sowohl MsgBox als auch Debug Print verwenden. Die Verwendung von Debug Print ist jedoch weitaus besser als die von MsgBox. Weisen Sie also Debug Print mit definiertem Variablennamen zu.

Code:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub 

Schritt 8: Öffnen Sie jetzt das Direktfenster auf der Registerkarte Ansicht, um die Ausgabe zu sehen.

Schritt 9: Kompilieren Sie den Code und führen Sie ihn aus. Wir werden sehen, Lookup hat Ashwani mit Geschwindigkeit kartiert und das als 86 in das Sofortfenster geholt.

Code:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub 

VBA-Suche - Beispiel # 3

Führen Sie die folgenden Schritte aus, um die Suchfunktion in Excel VBA zu verwenden:

Schritt 1: Schreiben Sie die unten gezeigte Unterprozedur für die VBA-Suche.

Code:

 Sub VBA_Lookup3 () End Sub 

Schritt 2: Deklarieren Sie eine Variable für Name als String (siehe unten).

Code:

 Sub VBA_Lookup3 () Dim Name As String End Sub 

Schritt 3: Weisen Sie nun den Namen, der nachgeschlagen werden soll, der definierten Variablen Name zu, wie unten gezeigt.

Code:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" End Sub 

Schritt 4: Verwenden Sie jetzt ein beliebiges Wort zum Definieren und Verwenden von Lookup. Sagen wir LUp . Verwenden Sie in diesem Fall die Arbeitsblattfunktion mit Vlookup (siehe unten).

Code:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (MsgBox "Durchschnittliche Geschwindigkeit ist:" & LUp End Sub 

Schritt 5: Verwenden Sie jetzt dieselbe Vlookup-Syntax wie in Excel. Geben Sie in Arg1 die Variable Name ein, wählen Sie dann die Bereichsmatrix aus und suchen Sie nach dem Wert, den Sie abrufen möchten. Hier ist diese Spalte 3, wie unten gezeigt.

Code:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Average Speed ​​is:" & LUp End Sub 

Schritt 6: Verwenden Sie nun MsgBox, um die Ausgabe zu sehen.

Code:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Average Speed ​​is:" & LUp End Sub 

Schritt 7: Kompilieren Sie den Code und führen Sie ihn aus. Wir werden sehen, für den Namen "Deepinder" kommt die Durchschnittsgeschwindigkeit auf 88. Dagegen wird derselbe Wert für den Namen Deepinder in der Tabelle angegeben.

Code:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Average Speed ​​is:" & LUp End Sub 

Vorteile der Excel VBA-Suchfunktion

  • Es ist so einfach zu verwenden und zu implementieren wie das Anwenden von regulären Excel Vlookup-Formeln in Excel.
  • Wir können in VBA Lookup jede Art von Bereich und Matrix verwenden.
  • Beim Anwenden von VBA-Lookup gelten nur sehr wenige oder keine Einschränkungen.

Dinge, an die man sich erinnern sollte

  • In jeder Situation können wir Lookup anstelle von Vlookup verwenden.
  • Der Bereich für den Suchvektor und den Ergebnisvektor sollte gleich sein.
  • Speichern Sie die Datei nach Abschluss der Anwendung im Makroaktivierungsformat, um den Code beizubehalten.
  • Es ist nicht zwingend erforderlich, dass die Ergebnisspalte jedes Mal rechts vom Suchwert angezeigt wird.

Empfohlene Artikel

Dies ist eine Anleitung zur VBA-Suchfunktion. Hier wird die Verwendung der Suchfunktion in Excel VBA zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage erläutert. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA Collection (Beispiele)
  2. VBA-IF-Anweisungen | Excel-Vorlagen
  3. Wie verwende ich die Excel VBA-Sortierfunktion?
  4. VBA While-Schleife (Beispiele mit Excel-Vorlage)
  5. VBA Environ

Kategorie: