当我使用下一个代码时,当我尝试从excel启动批处理文件时,它会出现。

Sub RunBatch()
    Call Shell(Environ$("COMSPEC") & " F:\Financial\Data\Reports\ExpensesYTD\Batch1.bat", vbNormalFocus)
End Sub

我有这个错误:
erorr: Run-time error '53' File not found

我该如何解决这个问题?

最佳答案

两者都有什么结果

dir /B "F:\Financial\Data\Reports\ExpensesYTD\Batch1.bat"
dir /B F:\Financial\Data\Reports\ExpensesYTD\Batch1.bat

由于我们不知道Run-time error '53'错误消息所指向的文件,因此请公开Environ$("COMSPEC")结果,例如通过MsgBox并检查dir /B %COMSPEC%的输出。

并考虑使用以下语法更改/C的cmd调用:
Call Shell(Environ$("COMSPEC") & " /C F:\Financial\Data\Reports\ExpensesYTD\Batch1.bat", vbNormalFocus)
'or even
Call Shell("cmd /C F:\Financial\Data\Reports\ExpensesYTD\Batch1.bat", vbNormalFocus)
/C参数确保批处理文件完成执行后,cmd窗口自动关闭

09-27 22:40