1

我正在尝试从 LibreOffice 基本宏调用 IRR 函数,但得到一个

非法参数异常

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

调用函数的正确方法是什么?

4

1 回答 1

0

显然,这样的函数需要一个二维数组。

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

为了解决这个问题,我使用了https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Function_Handling#Calculating_Function_Results上的 Java 示例。

编辑

How to use LibreOffice functions into Basic中有一个类似的问题?

于 2018-01-25T18:54:35.107 回答