相当于OpenOffice Calc中的Run方法(VBA)

时间:2015-03-26 10:38:31

标签: vba 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的“运行方法”中我正在运行一个包含程序的宏,它的数据库和输入文件。 (expression.Run(MacroName, varg1,varg2, (...)

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

2 个答案:

答案 0 :(得分:0)

来自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)

答案 1 :(得分:0)

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

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