2017-06-12 94 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

相關問題