使用Shell函数运行一个exe文件时找不到文件错误

我正在运行应用程序运行一个exe文件,在工作文件夹中find一个子,如下所示:

Sub RunProcessor() If MsgBox("Run simulation?", vbYesNo) = vbNo Then Exit Sub Else ChDir ThisWorkbook.Path Shell ("runsims.exe") End If End Sub 

这在我的本地驱动器上工作正常,但是当我将所有内容移动到一个服务器驱动器(Shell函数调用行上的运行时错误5)时开始失败。

我知道在cmd中,当你在C:盘上工作,然后执行cd L:\...\...\ call时,你需要inputL:所以我试着插入这行代码上面的其他Shell调用: Shell (Left(ThisWorkbook.Path, 2))但这也失败了。 我怎么能运行“runsims.exe”,因为它总是在当前的工作驱动器?

ChDir只会将当前目录更改为同一驱动器上的另一个目录 – 如果要切换到另一个驱动器上的文件夹,则需要先使用ChDrive

更好的是,将完整path传递给Shell并跳过更改当前目录。

 Sub RunProcessor() If MsgBox("Run simulation?", vbYesNo) = vbYes Then Shell (ThisWorkbook.Path & "\runsims.exe") End If End Sub