【发布时间】:2017-06-12 15:26:19
【问题描述】:
我有这段 VBA,它运行一个 .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 文件而不向用户显示命令提示符屏幕,但是它会立即移动到“do stuff”,而不是等待 .bat完成。
理想情况下,我希望隐藏命令提示符并在 .bat 上等待,然后再转到我的 VBA 的下一部分。我的问题是,当我尝试将这两者结合起来时,即使用“、vbHide、windowStyle、waitOnReturn”时,出现错误
“运行时错误‘450’: 参数数量错误或属性分配无效。” 有没有办法让这三个命令没有错误?
【问题讨论】:
-
我没有测试过代码,但是
Run方法的括号位置似乎不正确。 -
或许
"cmd /c ""pushd FilePath & filename.bat"""
标签: vba excel batch-file