如何处理错误:运行时错误'53'找不到文件

时间:2014-11-27 13:11:06

标签: excel-vba batch-file error-handling vba excel

当我尝试从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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

两者的结果是什么

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窗口自动关闭