Verweisen Sie mit VBA auf ein anderes Blatt in VLookup
-
Was ist die
VLookup
-Funktion -
Verwenden Sie
VLookup
, um auf ein anderes Blatt in VBA zu verweisen - Abschluss
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.
-
lookup_value
– Dies ist die Zelle, anhand derer Sie den Wert in der Zeile finden möchten. -
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 dieVLookup
-Funktion nicht korrekt funktionieren. -
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 istC
die Spaltennummer 1,D
die Spaltennummer 2,E
die Spaltennummer 3 und so weiter. -
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 SieFALSE
oder0
an; für einen ungefähren Wert schreiben SieTRUE
oder1
.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.
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.
Hinweis: Die Zeile
On Error Resume Next
verhindert, dass VBAError 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.
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.
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
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.
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