相当于 OpenOffice Calc 中的 运行 Method(VBA)

Equivalent to Run Method(VBA) in OpenOffice Calc

我一直在尝试将 VBA for Excel 代码转换为 OpenOffice Calc(基本),现在我无法访问外部程序(及其数据库)来生成输出我稍后将在我的代码中使用它。换句话说,我提供一个输入,调用程序,然后我想要一个输出文件。

在VBA中:

Prog = Worksheets("Settings").Cells(2, 2) & IPRODB & " -i " & DateiAll_in 
Wait = True
Set sh = CreateObject("WScript.Shell")
RetVal = sh.Run(Prog, 0, Wait) 

Worksheets("Settings").Cells(2, 2)是程序的路径,IPRODB是数据库的路径,“-i”似乎是对程序的命令,DateiAll_in是输入文件(.csv) 我之前在代码中创建过。

OpenOffice basic 提供了 Shell(Pathname, Windowstyle, Param, bSync) 打开外部程序的功能,但它不会一样,因为在 VBA 中的 "run method" 我是 运行 宏包含程序、它的数据库和输入文件。 (expression.Run(MacroName, varg1,varg2, (...))

是否有 Shell 函数的替代方法,或者我可以像在 VBA 中使用 "run method" 一样使用它吗?

来自OpenOffice.org forums(我自己没有测试):

Dim oSvc as object
oSvc = createUnoService("com.sun.star.system.SystemShellExecute")

Rem Launch notepad
oSvc.execute(ConvertToUrl("C:\windows\notepad.exe"), "", 0)

我使用了Shell函数。在函数的第一个参数中,我添加了 "Worksheets("Settings").Cells(2, 2) & IPRODB & " -i " & DateiAll_in" 的所有等效项。我将 Worksheets("Settings").Cells(2, 2) 替换为程序的直接路径,只是因为这样更容易。所以它适用于下面的代码:

Shell("C:\Program Files\*******\*****\*****.exe & IPRODB & "-i" & DateiAll_in",1,,True)