Вызов встроенной функции IRR в макросе

Я пытаюсь вызвать функцию IRR из базового макроса LibreOffice, но получаю

Недопустимое исключение аргумента

Function Bla() 
  Dim oFunc as Object
  oFunc = createunoservice("com.sun.star.sheet.FunctionAccess")

  Dim args(1) as Variant
  args(0) = Array(3300, -1000, -2000)
  args(1) = 0.1

  Dim vResult as Variant    
  vResult = oFunc.callFunction("IRR", args)
  Print vResult
End Function

Как правильно вызвать функцию?


person Simon    schedule 25.01.2018    source источник


Ответы (1)


Судя по всему, такие функции ожидают двумерный массив.

Sub CallIRR() 
  Dim oFunc As Object
  oFunc = createUnoService("com.sun.star.sheet.FunctionAccess")

  Dim args(1) As Variant
  args(0) = Array(Array(3300, -1000, -2000))
  args(1) = 0.1

  Dim vResult As Variant    
  vResult = oFunc.callFunction("IRR", args)
  Print vResult
End Sub

Чтобы понять это, я поигрался с примером Java по адресу https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Function_Handling#Calculating_Function_Results.

ИЗМЕНИТЬ:

Аналогичный вопрос находится в разделе Как использовать функции LibreOffice в Basic?< /а>

person Jim K    schedule 25.01.2018