2015-03-26 3 views
1

Я пытаюсь преобразовать код VBA для Excel в OpenOffice Calc (базовый) и теперь у меня возникли проблемы с доступом к внешней программе (и ее базе данных) для генерации вывода который я буду использовать позже в своем коде. Другими словами, я даю вход, вызываю программу, а позже хочу выходной файл.Эквивалентен методу запуска (VBA) в 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?

ответ

0

Я использовал функцию Shell. В первом аргументе функции я добавил все эквиваленты «Рабочие листы» («Настройки»). Ячейки (2, 2) & IPRODB & «-i» & DateiAll_in ». Я заменил Worksheets («Настройки»). Ячейки (2, 2) для прямого пути программы только потому, что это было проще. Поэтому он работал с этим кодом ниже:

Shell("C:\Program Files\*******\*****\*****.exe & IPRODB & "-i" & DateiAll_in",1,,True) 
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) 
+0

Спасибо. Я фактически использовал функцию «Шелл», и она отлично работала. – Daniel

+0

OK - вы можете добавить ответ самостоятельно, чтобы другие пользователи могли пересмотреть различные решения. Вы можете даже «принять» свой собственный ответ. – tohuwawohu

Смежные вопросы