Friedhelm,
warum klappt es nicht?
Da die Daten in einer Tabelle vorliegen und die benötigte Funktion eine Calc-Funktion ist: geht nicht das Berechnen in der Calc-Tabelle?
Wie sieht Dein Code denn aus?
"sheet1" ist XLS-Code, bei OOo (in Einzelschritten):
Code: Alles auswählen
oDok = ThisComponent ' Dokument im Vordergrund, welches das Makro ruft
oTab = oDok.getSheets() ' ' alle Tabellenblätter des Calc
oBlatt = oTab.getByName( "Tabelle1" ) ' Tabellenblatt nach Namen holen
' hole A4
oStartDatum = oBlatt.getCellByPosition( 0,3 ).getValue() ' Angaben nach Spalte, Zeile: Null-basiert
' hole B4
oEndeDatum = oBlatt.getCellByPosition( 1,3 ).getValue()
Ein Datum in Calc ist eine Zahl, die entsprechend formatiert wurde. Verwendest Du Zeichenketten, dann lautet die Anweisung: .getString()
In die andere Richtung funktioniert das entsprechend durch die Anweisungen
.setString( "Feiertag" ) und .setValue( 39353 )
Nun unser Funktionsaufruf
Code: Alles auswählen
' Berechnen unter Nutzung der Calc-AddIn-Funktion
FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
oTage = FuncAcc.callFunction("Nettoarbeitstage", array( oStartDatum, oEndeDatum ))
' Rückgabewert ist DOUBLE
print oTage
Klappt es nun?