【问题标题】:VBA: Execute .bat file, hide the command prompt and continue code when .bat has completedVBA:执行 .bat 文件,隐藏命令提示符并在 .bat 完成后继续代码
【发布时间】: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


【解决方案1】:

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

Dim windowStyle As Integer: windowStyle = 0

这将使窗口不可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    相关资源
    最近更新 更多