等效于OpenOffice Calc中的Run方法(VBA)



我一直在尝试将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中的"运行方法"中,我运行的宏包含程序、程序的数据库和输入文件。(expression.Run(MacroName, varg1,varg2, (...)

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

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

Dim oSvc as object
oSvc = createUnoService("com.sun.star.system.SystemShellExecute")
Rem Launch notepad
oSvc.execute(ConvertToUrl("C:windowsnotepad.exe"), "", 0)

我使用了Shell函数。在函数的第一个参数中,我添加了"工作表("设置").Cells(2,2)&IPRODB&"-I"&DateiAll_In"的所有等价项。我替换了工作表("设置")。单元格(2,2)用于程序的直接路径,只是因为它更容易。所以它使用了下面的代码:

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

最新更新