SVERWEIS-Funktion in VBA mit Bezug auf anderes Blatt

06/02/2010 - 10:54 von Marco Schmid | Report spam
Liebe Gruppe

Ich habe folgendes Problem: Gerne möchte ich mit einer VBA-Formel
(FormulaLocal) eine SVERWEIS-Abfrage machen. Das Problem ist nun aber,
dass die Daten in einem anderen Blatt gespeichert sind und es mir nun
nicht gelingt die Range auf dem benötigten Baltt anzusprechen. Ich
habe es mit folgender Verküpfung versucht:

Sheets("Optimierung").Cells(20, 19).FormulaLocal = "=sverweis(" &
Sheets("Optimierung").Cells(20, 1).Address & ";" & HIER SOLLTE DER
BEREICH A5:C100 des SHEETS "Datenbank" stehen... & ", 3)"

Rückgabewert solle die 3.Spalte der Matrix A5:C100 des Sheets
"Datenbank" sein. Ich habe irgendwie alle Möglichkeiten per "Try and
Error" versucht, komme aber leider nicht auf eine korrekte Lösung :-
( kann mir jemand auf die Sprünge helfen? Besten Dank und lieber Gruss

Marco
 

Lesen sie die antworten

#1 Andreas Killer
06/02/2010 - 12:07 | Warnen spam
Marco Schmid schrieb:

Ich habe folgendes Problem: Gerne möchte ich mit einer VBA-Formel
(FormulaLocal) eine SVERWEIS-Abfrage machen. Das Problem ist nun aber,


Abfrage? Wieso machst Du das nicht gleich mit VBA?

IMHO ist es wenig effektiv eine Formel in ein Blatt zu schreiben und
dann das Ergebnis zu lesen.

Sheets("Optimierung").Cells(20, 19).FormulaLocal = "=sverweis(" &
Sheets("Optimierung").Cells(20, 1).Address & ";" & HIER SOLLTE DER
BEREICH A5:C100 des SHEETS "Datenbank" stehen... & ", 3)"


Eine gute Methode ist die Formel da hinzuschreiben wo sie hinsoll und
sie dann einfach als String in den VBA-Editor zu kopieren.

Anschließend einfach alle Zellbereiche durch
" & Range.Address & "
tauschen und diese spàter ergànzen. Will es trotzdem nicht klappen,
dann ist es hilfreich die erzeugte Formel erstmal als String zu
speichern, den kann man sich gut via Debug.Print ausgeben/ankucken.

Dein Problem war wohl eher das Du ein , statt ; in der Formel hast.

Andreas.

Sub Test()
Dim S As String
With Sheets("Optimierung")
S = "=sverweis(" & .Cells(20, 1).Address & ";" & _
.Range("A5:C100").Address & ";3)"
Debug.Print S
.Cells(20, 19).FormulaLocal = S
End With
End Sub

Ähnliche fragen