Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Aufruf einer UDF, Fehler Objekt erforderlich

Aufruf einer UDF, Fehler Objekt erforderlich
29.03.2007 18:25:00
Christian
Hallo zusammen,
ich habe fogende UDF:

Function New_SumProduct(x As String, y As String) As Variant
Dim strMonat As String
Dim strArt As String
Dim strSumme As String
Application.Volatile
intLastRow = Sheets("Tabelle1").Range("F65536").End(xlUp).Row
strMonat = Application.Caller.Parent.Range("Tabelle1!A5:A" & intLastRow).Address ' contains  _
_
text
strArt = Application.Caller.Parent.Range("Tabelle1!C5:C" & intLastRow).Address ' contains   _
_
text
strSumme = Application.Caller.Parent.Range("Tabelle1!F5:F" & intLastRow).Address  '  _
contains values
New_SumProduct = _
Evaluate("SUMPRODUCT((" & strMonat & "=" & Chr(34) & x & Chr(34) & ")*(" & strArt & "=" &   _
_
Chr(34) & y & Chr(34) & ")*" & strSumme & ")")
End Function

Im Tabellenblatt funktioniert die auch einwandfrei, wenn ich sie aber im VBE mit z.B.
Range("K1") = New_SumProduct("x", "y")
aufrufen will kommt bei der Zeile
strMonat = Application.Caller.Parent.Range("Tabelle1!A5:A" & intLastRow).Address
die Fehlermeldung Laufzeitfehler 424, Objekt erforderlich.
Weiss jemand was ich falsch mache?
Vielen Dank!
Christian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufruf einer UDF, Fehler Objekt erforderlich
29.03.2007 18:54:57
Kurt
Hi,
Application.Caller ist die Zelle, aus der die UDF aufgerufen wird.
Hier gibt es keine aufrufende Zelle:
Range("K1") = New_SumProduct("x", "y")
Deine Konstruktion kann so nur als Funktion in einer Zelle funktionieren.
AW: Aufruf einer UDF, Fehler Objekt erforderlich
29.03.2007 19:45:00
Christian
Hi Kurt,
ich habe jetzt mal Apllication.Caller.Parent weggelassen (hatte es mir so gegoogelt) und siehe da es geht:-).
Danke für die Info!
Grüße
Christian
Anzeige
AW: Aufruf einer UDF, Fehler Objekt erforderlich
29.03.2007 19:54:00
Kurt
Hi,
Volatile sollte man nur einsetzen, wenn es nicht anders geht, in deinem Fall nicht nötig.
mfg Kurt
;

Forumthreads zu verwandten Themen

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige