Supportnet / Forum / Tabellenkalkulation
vba sverweis
Frage
Hallo,
ich möchte einen Sverweis in VBA für Excel umsetzen.
Die Datenquelle steht in Sheet1 (spaltenweise im Bereich A1 bis B18), die Daten sollen in Sheet2 (zeilenweise)ausgewiesen werden.
In Excel sieht die entsprechende Formel so aus:
=VLOOKUP(a$1,Sheet1!$A$1:$B$18,2,0)
in VBA bekomme ich mittels Application.worksheetfunction nur eine Lösung, wenn sich Datenquelle und Datenausweis auf dem selben Tabellenblatt befinden. Für meine Zwecke muss das aber auf zwei verschiedenen Tabellenblättern sein.
Kann mir jemand weiterhelfen?
Vielen Dank
Lucas
Antwort 1 von Saarbauer
Hallo,
in deine Formel gehört noch der Tabellenname
=VLOOKUP(a$1,[??????.xls]Sheet1!$A$1:$B$18,2,0)
Hinweis, der Sverwis funktioniert nur wenn die Tabelle offen ist
Gruß
Helmut
in deine Formel gehört noch der Tabellenname
=VLOOKUP(a$1,[??????.xls]Sheet1!$A$1:$B$18,2,0)
Hinweis, der Sverwis funktioniert nur wenn die Tabelle offen ist
Gruß
Helmut
Antwort 2 von lucas_vba
Hallo Helmut,
vielen Dank.
Beide Auswertungen befinden sich in der gleichen Datei und in via Excel-Formel funktioniert auch alles.
Ich möchte diese Funktion aber in ein Makro integrieren.
Lasse ich alles auf einem Tabellenblatt ergibt sich folgendes Makro, das funktioniert.
Möchte ich aber das Ergebnis auf einem anderen Blatt in der gleichen Datei anzeigen, weiß ich nicht, wie das Makro zu verändern ist.
Sub sverweis()
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
Dim amt As Double
a = Sheets("Sheet1").Range("a2").End(xlDown).Row
Sheets("Sheet1").Select
Range("a1").Select
b = Range("e2").End(xlToRight).Column
c = Range("e2").End(xlDown).Row
c = c + 1
For d = 5 To b
amt = Application.WorksheetFunction.VLookup(Cells(2, d), Range(Cells(2, 1), Cells(a, 2)), 2, 0)
Cells(c, d) = amt
Next d
End Sub
vielen Dank.
Beide Auswertungen befinden sich in der gleichen Datei und in via Excel-Formel funktioniert auch alles.
Ich möchte diese Funktion aber in ein Makro integrieren.
Lasse ich alles auf einem Tabellenblatt ergibt sich folgendes Makro, das funktioniert.
Möchte ich aber das Ergebnis auf einem anderen Blatt in der gleichen Datei anzeigen, weiß ich nicht, wie das Makro zu verändern ist.
Sub sverweis()
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
Dim amt As Double
a = Sheets("Sheet1").Range("a2").End(xlDown).Row
Sheets("Sheet1").Select
Range("a1").Select
b = Range("e2").End(xlToRight).Column
c = Range("e2").End(xlDown).Row
c = c + 1
For d = 5 To b
amt = Application.WorksheetFunction.VLookup(Cells(2, d), Range(Cells(2, 1), Cells(a, 2)), 2, 0)
Cells(c, d) = amt
Next d
End Sub
Antwort 3 von Saarbauer
Hallo,
einfachste Lösung zeichne ein Makro auf und baue es anschliessend in dein oben beschriebenes Makro ein.
Mach ich meistens auch so, dann muss ich mir nicht immer die Funktionen zusammensuchen und ergänze es dann mit den nicht aufzeichenbaren Funktionen
Gruß
Helmut
einfachste Lösung zeichne ein Makro auf und baue es anschliessend in dein oben beschriebenes Makro ein.
Mach ich meistens auch so, dann muss ich mir nicht immer die Funktionen zusammensuchen und ergänze es dann mit den nicht aufzeichenbaren Funktionen
Gruß
Helmut

