我正在从用户表单运行一个子程序,该子程序应该运行在工作文件夹中找到的 exe 文件,如下所示:
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:\...\...\
拨打电话,然后您需要输入L:
同样,所以我尝试将这行代码插入到另一个 Shell 调用之上:Shell (Left(ThisWorkbook.Path, 2))
但这也失败了。鉴于“runsims.exe”始终位于当前工作驱动器中,如何运行它?
ChDir
只能将当前目录更改为同一驱动器上的另一个目录 - 您需要使用ChDrive
首先,如果您想切换到不同驱动器上的文件夹。
更好的是,将完整路径传递给 Shell 并跳过更改当前目录。
Sub RunProcessor()
If MsgBox("Run simulation?", vbYesNo) = vbYes Then
Shell (ThisWorkbook.Path & "\runsims.exe")
End If
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)