getvalue = ExecuteExcel4Macro(arg) als UDF
Peter
Mit nachfolgender Function will ich aus einer Tabelle einer anderen Datei einen Wert abfragen.
Im Zielfile habe ich die notwendigen Parameter abgelegt (Zellen U47, U48, U49, U50):
G:\TEAM ABC
999999ABC.xls
A
F15
Im Feld, in welchem das Ergebnis stehen soll, steht:
=getvalue(U47;U48;U49;U50)
Ich habe die Tabellen nicht fest verlinkt, da es sich um ein Template handelt und die Einträge in den Zellen U47-U50 das Ergebnis von Abfragen sind, welche ändern können.
Die Funktion läuft schon durch bis ans Ende, die Werte werden ordentlich übergeben, doch als Ergebnis gibt getvalue #WERT aus.
Was mache ich falsch?
Gruss, Peter
Public Function getvalue(path, File, sheet, ref)
'retrieves a value from a closed workbook
Dim arg As String
'make sure the file exists
If Right(path, 1) "\" Then path = path & "\"
If Dir(path & File) = "" Then
getvalue = "File not found"
Exit Function
End If
'create the argument
arg = "'" & path & "[" & File & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
'execute an xlm macro
getvalue = ExecuteExcel4Macro(arg)
End Function