Wait for shell command to complete
batch-file, excel, shell, vba
Solution
Use the WScript.Shell instead, because it has a `waitOnReturn` option:
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
wsh.Run "C:\folder\runbat.bat", windowStyle, waitOnReturn
(Idea copied from Wait for Shell to finish, then format cells - synchronously execute a command)
Problem
I'm running a simple shell command in Excel VBA that runs a batch file in a specified directory like below: ``` Dim strBatchName As String strBatchName = "C:\folder\runbat.bat" Shell strBatchName ``` Sometimes the batch file might take longer on some computer to run, and there are proceeding VBA code that is dependent on the batch file to finish running. I know you can set a wait timer like below: ``` Application.Wait Now + TimeSerial(0, 0, 5) ``` But that might not work on some computer that are too slow. Is there a way to systematically tell Excel to proceed with the rest of the VBA code until after the shell has finish running?