【发布时间】:2023-03-12 02:30:02
【问题描述】:
构建一个函数来评估字符串并返回结果。但是,svc 和 svc2 通过一个错误,“Object Not Set”。但是,当我运行代码时,打印语句清楚地表明对象不是 null 或什么都没有,因为它们返回 FALSE。
我错过了什么?
我是否可以进行其他测试以确保 svc 或 svc2 已初始化?
Option VBASupport 1
Option Explicit
Function EVAL (str as String)
dim svc as object
dim svc2 as object
SET svc = createUnoService( "com.sun.star.sheet.FunctionAccess" )
SET svc2 = GetProcessServiceManager().createInstance("com.sun.star.sheet.FunctionAccess")
EVAL = svc2.callFunction ("Evaluate", str)
EVAL = svc.callFunction ("Evaluate", str)
End Function
我现在收到错误 91,无法在核心反射调用期间强制参数!
注意:正如对此问题的回复中所述,调用 Evaluate 时 LibreOffice 中存在未解决的错误,因此该问题很可能在 OpenOffice 解决其错误之前仍未解决。 =(
【问题讨论】:
-
尝试在您的 svc 和 svc2 分配中使用
Set。 -
AFAIK,没有真正的好方法来做到这一点。也许提供更多关于您想要做什么的细节会有所帮助,我们可以找到一种不同的解决方案。您的电子表格是什么样的?
-
仅供参考... E1 = FORMULA (E3) ... 生成公式 ... E3 = C3 - D3 + E2 ...(标准银行余额公式)。我想在哪里使用... E3 = EVALUATE (E1) ... 这样我就可以看到方程式并根据需要进行调整,这就足够了。不是问题的答案,但可能对其他人有所帮助。
标签: vba libreoffice calc openoffice-basic