Verweisen Sie mit VBA auf ein anderes Blatt in VLookup

Bilal Shahid 15 Februar 2024
  1. Was ist die VLookup-Funktion
  2. Verwenden Sie VLookup, um auf ein anderes Blatt in VBA zu verweisen
  3. Abschluss
Verweisen Sie mit VBA auf ein anderes Blatt in VLookup

VBA ist die Abkürzung für Visual Basic for Applications. Es ist eine Programmiersprache für alle Microsoft Office-Anwendungen wie Excel, Word und PowerPoint.

Die Verwendung von VBA ermöglicht es den Benutzern, ihre Zeit mit der Microsoft Office-Anwendung zu optimieren, indem sie Codes schreiben, die als Makros bekannt sind. Auf diese Weise kann der Benutzer das Makro für eine Aufgabe ausführen, um sie zu automatisieren, anstatt dieselben Aktionen wiederholt manuell auszuführen, was Zeit spart.

VBA bietet Entwicklern eine Vielzahl unterschiedlicher Funktionen und Features. In diesem Artikel erfahren wir mehr über die Funktion VLookup und wie sie verwendet wird, insbesondere wenn wir auf ein anderes Blatt verweisen möchten.

Was ist die VLookup-Funktion

Die Funktion VLookup wird in Excel verwendet, wenn wir den Wert einer bestimmten Zeile in einer Tabelle oder einem Bereich finden möchten. Dies ist äußerst nützlich, wenn Sie mit einer großen Tabellenkalkulation arbeiten. Das manuelle Suchen nach entsprechenden Werten kann zu menschlichen Fehlern führen.

Die Syntax der Funktion VLookup ist wie folgt:

VLOOKUP(lookup_value, Sheet!range, col_index_num, [range_lookup])

Parameter:

Die Funktion VLookup benötigt vier Parameter, wie in der obigen Syntax gezeigt. Diese werden im Folgenden erläutert.

  1. lookup_value – Dies ist die Zelle, anhand derer Sie den Wert in der Zeile finden möchten.

  2. Sheet!range - Hier definieren Sie den Zellbereich, in dem sich der Lookup-Wert und der Rückgabewert befinden. Als allgemeine Regel gilt, dass der Lookup-Wert immer in der ersten Spalte des angegebenen Bereichs stehen muss, sonst würde die VLookup-Funktion nicht korrekt funktionieren.

  3. col_index_num - In der Regel muss die hier angegebene Spaltennummer in dem zuvor angegebenen Bereich vorhanden sein. Die Spalten werden von 1 gezählt.

    Wenn Sie beispielsweise C3:F10 als Bereich angegeben haben, dann ist C die Spaltennummer 1, D die Spaltennummer 2, E die Spaltennummer 3 und so weiter.

  4. range_lookup – Der letzte Parameter ist optional und erlaubt Ihnen anzugeben, ob Sie einen genauen oder ungefähren Rückgabewert wünschen. Für einen exakten Wert geben Sie FALSE oder 0 an; für einen ungefähren Wert schreiben Sie TRUE oder 1.

    Wenn dieser Parameter nicht angegeben wird, ist der Standardwert TRUE und es wird ein ungefähres Ergebnis zurückgegeben.

Die oben erläuterte Syntax und Parameter lassen sich am besten anhand eines Beispiels veranschaulichen. Angenommen, wir haben die folgende Excel-Tabelle.

Beispielblatt

Angenommen, wir möchten den Namen des Mitarbeiters mit der ID 1004 nachschlagen. Wir verwenden dazu die Funktion VLookup mit folgendem Code.

Sub example()
On Error Resume Next
Range("C8") = Application.WorksheetFunction.VLookup(Range("A5"), Range("A2:D6"), 3, False)
End Sub

Nachdem wir diesen Code in VBA ausgeführt haben, bekommen wir den entsprechenden Namen für ID 1004 in der Zelle C8 zurückgegeben.

Beispielausgabe

Hinweis: Die Zeile On Error Resume Next verhindert, dass VBA Error 1004 ausgibt, wenn der entsprechende Wert nicht gefunden wird, indem der Code aus der nächsten Zeile fortgesetzt wird.

Nachdem Sie nun die Funktion VLookup in VBA kennengelernt haben, lassen Sie uns erklären, wie wir sie verwenden können, um Zellen aus einem anderen Blatt zu referenzieren.

Verwenden Sie VLookup, um auf ein anderes Blatt in VBA zu verweisen

Angenommen, wir möchten einen Wert für eine entsprechende Zelle nachschlagen, aber der Bereich, in dem sich der Wert befindet, befindet sich in einem anderen Blatt.

Wie referenzieren wir in einem solchen Fall ein anderes Blatt? Lassen Sie uns das an einem Beispiel lernen.

Nehmen wir zusätzlich zum obigen Beispiel an, dass wir ein weiteres Blatt haben, das nur die Mitarbeiter-IDs und ihre Kontaktinformationen enthält, wie unten gezeigt.

Beispielblatt mit Kontaktdaten

Wie wir hier sehen können, ist die letzte Zelle der Spalte Kontakt leer, was bedeutet, dass wir keine Kontaktinformationen für den Mitarbeiter mit der ID 1005 haben.

Die Aufgabe besteht nun darin, den Wert Kontakt aus Blatt1 entsprechend der ID 1005 nachzuschlagen und ihn wie gewünscht in die Zelle B6 in Blatt2 gegen die ID 1005 zu schreiben. Dazu können wir mit ein paar Änderungen ganz einfach die Funktion VLookup verwenden.

Die wichtigste Anpassung, die wir in den Parametern der Funktion VLookup vornehmen müssen, besteht darin, das Blatt anzugeben, auf dessen Zellen wir uns im Bereich beziehen; andernfalls gibt es Mehrdeutigkeiten, die zu fehlerhaften Ergebnissen führen können.

Eine Lösung besteht darin, die Blattnamen als Arbeitsblatt-Variablen zu definieren und damit auf die entsprechenden Zellen zu verweisen. Der VBA-Code dafür lautet wie folgt:

Sub example2()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
On Error Resume Next
ws2.Range("B6") = Application.WorksheetFunction.VLookup(ws2.Range("A6"), ws1.Range("A2:D6"), 4, False)
End Sub

Hier können wir sehen, dass wir jedes Mal, wenn ein Bereich erwähnt wird, angeben, zu welchem Blatt er gehört, um Mehrdeutigkeiten zu vermeiden. Nach dem Ausführen dieses VBA-Codes sieht der Status von Sheet2 wie folgt aus, was darauf hinweist, dass unser Code korrekt ausgeführt wird.

Verweisen auf ein anderes Blatt in VBA

Wenn Sie jedoch keine separaten Variablen deklarieren möchten, können Sie den Blattnamen direkt als Arbeitsblatt referenzieren. Der folgende Code funktioniert dafür und generiert die gleiche Ausgabe.

Sub example()
On Error Resume Next
Worksheets("Sheet2").Range("B6") = Application.WorksheetFunction.VLookup(Worksheets("Sheet2").Range("A6"), Worksheets("Sheet1").Range("A2:D6"), 4, False)
End Sub

direkte Referenz

Abschluss

Dies fasst unsere Diskussion über die Funktion VLookup in VBA zusammen, einer nützlichen Programmiersprache, die Microsoft Office-Benutzern wertvolle Zeit spart.

Wir hoffen, Sie haben gelernt, wie Sie die Funktion VLookup in VBA verwenden, um Zellen in anderen Blättern als dem aktiven zu referenzieren.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub