Hallo zusammen,
habe bereits das Forum durchsucht und bin auf folgenden Code gestoßen, den ich versucht habe anzupassen:
Public Function xlfct()
Dim xl As Object
Set xl = CreateObject("Excel.Application")
xlfct = xl.WorksheetFunction.excelbefehlsname()
Set xl = Nothing
End Function
Der Befehl liegt in Excel im ersten Arbeitsblatt als public-Funktion vor.
Fehlermeldung: Laufzeitfehler 438, Objekt unterstützt diese Eigenschaft oder Methode nicht
Was mache ich falsch?
Hi,
vielleicht hilft: http://support.microsoft.com/kb/153748/de
Harald
Danke, der Artikel war hilfreich für mein Grundverständnis, nur so wie ich das sehe können so nur exceleigene Funktionen aufgerufen werden.
War vorher unpräzise von mir formuliert, aber ich versuche eine umfangreiche Funktion, welche ich in Excel programmiert habe von Access aus aufzurufen und finde diese nicht im Objektkatalog wieder.
In dem Code oben wird nur ein Excel-Objekt angelegt, aber keine Excel-Mappe. Da Deine Makros in einer Excel-Mappe liegen und nicht im Excel an sich, braucht es eine Referenz auf eine Mappe (c:\meinemappe.xls o.ä.)
Hab damit auch schon rumprobiert, dieselbe Fehlermeldung kam leider trotzdem
Public Function xlfct()
Dim xl As Object
Set xl = CreateObject("Excel.Application")
xl.DisplayAlerts = False
Set wb = xl.Workbooks.Open(Application.CurrentProject.Path & "\excelfilename.xls") '
xlfct = wb.WorksheetFunction.namedereigenenfunktion()
Set xl = Nothing
End Function
Hängt das vielleicht damit zusammen, dass meine selbst erstellte Funktion eigentlich kein Bestandteil des worksheetfunction-Funktionskataloges ist?
Weiss nicht wie der richtige Aufrufbefehl für selbst erstellte Funktionen sonst aussehen würde.
LG
Die Funktion befindet sich in folgendem Objekt in Excel:
(http://s7.directupload.net/images/131010/8hyy9f99.jpg) (http://www.directupload.net)
Hallo,
ich glaube mal gelesen zu haben, dass dein Vorhaben die Existenz einer Funktion als Benutzerdefinierte Funktion in deiner Arbeitsmappe erfordert.
Soll heißen, dass diese Funktion als solche in einem VBA Modul als 'Public Function' anzulegen wäre und nicht in einem Arbeitsblatt zu speichern ist.
Aber bitte mich nicht darauf verhaften - auch über die AddIns sollte das machbar sein, wenn deine Function als AddIn angelegt wird
schau auch mal da rein:
http://microsoft.public.de.access.narkive.com/WogrGrju/aufruf-benutzerdefinierte-excel-funktion (http://microsoft.public.de.access.narkive.com/WogrGrju/aufruf-benutzerdefinierte-excel-funktion)