Also hätte ich Dir auch sofort sagen können, wenn Du die Fehlermeldung eingestellt hättest. :-)
Habe ich hier auch schon oft genug beantwortet. :-)
Problem ist die COM-Schnittstelle im VBA-Bereich.
Du darfst, wenn Du Werte nach Außen übergibst, einfach nicht genau deklarieren, sondern musst auf LateBinding vertrauen. Das ist vor allem bei der Übergabe von Arrays so, ganz besonders, wenn sie Rückgabe sind.
Das sollte sich auch in jeder UserSelection, via Makro, wiederfinden. :-) Stichwort: SelectElement2
Was in dem Zusammenhang das Leben manchmal auch einfacher macht, ist ein CALL davor zu schreiben, wenn es nicht an dem Array liegt.
In Deinem Fall möchtest Du die Methode eines COM-Objekts benutzen und übergibst ein Array der Länge 1. COM weiß aber nicht genau wie lang das Array sein wird, denn es kann ja beliebig lang sein und daran stört es sich. Wenn auf der linken Seite das Objekt sowieso mit LateBinding arbeiten muss, dann geht's.
Ich empfehle die Schreibweise:
Dim product1 As Object 'Product
------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila
Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen
Xing
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP