2017-06-12 199 views
0

我有一块VBA,它运行一个.bat文件并在关闭之前等待它完成并移动到“执行任务” :VBA:执行.bat文件时,隐藏命令提示符并在.bat完成时继续执行代码

Sub RunFWScript() 

Dim waitOnReturn As Boolean: waitOnReturn = True 
Dim windowStyle As Integer: windowStyle = 1 

CreateObject("WScript.Shell").Run ("cmd /c pushd FilePath & filename.bat"), windowStyle, waitOnReturn 

'do stuff 

End Sub 

如果我取代“windowStyle,waitOnReturn”与“vbhide”,我有它运行.bat文件而不显示用户在命令提示屏幕宏,但它马上移动到“做的东西”,不等待.bat完成。

理想情况下,我希望隐藏命令提示符并等待.bat,然后再移动到我的VBA的下一部分。我的问题是,当我尝试这两个结合,即与走“ vbHide,windowStyle,waitOnReturn”,我得到一个错误

“运行时错误‘450’: 的参数或无效的属性赋值错误号码“。 有没有办法让这3个命令没有错误?

+0

我还没有测试代码,但似乎'Run'方法的圆括号的位置不正确。 – treintje

+0

也许''cmd/c“”pushd FilePath&filename.bat“”“' – Compo

回答

1

在您的例子,尝试改变windowStyle 0

Dim windowStyle As Integer: windowStyle = 0 

这将使窗口不可见。

+0

完美,谢谢! – user2842721