VBA:执行.bat文件,隐藏命令提示符并在.bat完成后继续编码

时间:2017-06-12 15:26:19

标签: vba excel-vba batch-file excel

我有一块运行.bat文件的VBA并在关闭它之前等待它完成并转移到"做东西":

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到光洁度。

理想情况下,我希望隐藏命令提示符并在移动到我的VBA的下一部分之前等待.bat。我的问题是,当我尝试将这两者结合起来时,即使用",vbHide,windowStyle,waitOnReturn",我收到错误

"运行时错误' 450': 参数数量错误或属性分配无效。"  有没有办法让这三个命令无误?

1 个答案:

答案 0 :(得分:1)

在您的示例中,尝试将windowStyle更改为0

Dim windowStyle As Integer: windowStyle = 0

这会使窗口不可见。