Не могу заставить работать в макросе встроенную функцию WORKDAY

Автор Евгений Дуркин, 22 февраля 2024, 10:32

0 Пользователи и 1 гость просматривают эту тему.

Евгений Дуркин

Не могу заставить работать встроенную функцию WORKDAY в макросе может кто подскажет.
P.S. дата на первом листе в ячейке A1 введена.

Sub Main
Dim oDesk as Object
Dim oDoc as Object
Dim oSheet As Object
Dim oCell As Object
Dim oFunction as Object
Dim var1(), var2(), var3()
Dim dat As Date
oDesk = createUnoService ("com.sun.star.frame.Desktop")
oFunction = createUnoService("com.sun.star.sheet.FunctionAccess")
oDoc = ThisComponent
oSheet = oDoc.getSheets().getByIndex(0)
oCell = oSheet.getCellRangeByName("A1")
var1 = oCell.getValue()
var2 = -1
var3 = Array(#2/15/2024#, #2/16/2024#)
dat = oFunction.callFunction("WORKDAY", Array(var1, var2, var3))
End Sub

mikekaganski

Как описано в справке, WORKDAY - это функция расширения, и поэтому должна вызываться через com.sun.star.sheet.addin.Analysis.getWorkday:

   oService = CreateUnoService("com.sun.star.sheet.addin.Analysis")
   dat = oService.getWorkday(var1, var2, var3)

Хотя после исправления бага 150203 (версия 7.4.1) оно должно работать и так.
С уважением,
Михаил Каганский

sokol92

Цитата: Евгений Дуркин от 22 февраля 2024, 10:32Не могу заставить работать встроенную функцию WORKDAY
Попробуйте присвоение переменной var3 задать так:
var3 = Array(Array(CDbl(#2/15/2024#), CDbl(#2/16/2024#)))
Владимир.