我有一个Matlab生成的可执行文件,Myfile.exe致电excel-vba。我了解到(Shell函数)是我需要使用的。(Shell Function)VBA中是否需要文件路径?
我不想包含整个文件路径,因为我不想将用户限制到每台计算机上某个位置的某个文件夹。
我有以下代码调用可执行程序,它工作得很好:
Sub MyExe()
On Error Resume Next
Shell ("C:\Users\elwany\Desktop\Myfolder\Myfile.exe")
If Err <> 0 Then
MsgBox "Can't start the application.", vbCritical, "Error"
End If
End Sub
我的问题/问题是 我把可执行程序+ Excel的在同一个文件夹中的VBA项目文件(我的文件夹),然后我修改代码:
Sub MyExe()
On Error Resume Next
Shell ("Myfile.exe")
If Err <> 0 Then
MsgBox "Can't start the application.", vbCritical, "Error"
End If
End Sub
有时它有效,有时它不会!
例如,昨天我运行了VBA代码,它工作。今天我打开相同的Excel文件,相同的文件夹,相同的一切,它给“无法启动应用程序”错误味精!
- 即使我在一个文件夹中包含所有内容,是否可以删除文件路径?
- 它为什么有时会起作用,有时候不行?
- 添加文件路径绝对强制吗?
对于未来的参考,你可以改变'ChDir'当前目录。所以'Shell(“Myfile.exe”)'之前的'ChrDir ThisWorkbook.Path'在这种情况下可以工作。 – brettdj 2012-01-08 02:07:41