请帮忙解决这个问题。
我不知道为什么这不起作用:
Public Sub OpenFile(ByVal ImagePath As String)
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run ImagePath
End Sub
我收到此异常:
(&H80070002)
我正在尝试打开一个文件,其路径存储在变量ImagePath
中,这是一个字符串。
情景:
当我调用此功能时。我希望文件与其关联软件一起打开。 在这种情况下是文本查看器。
如果是pdf文件,我希望在pdf查看器中打开它。
文件关联在各自的应用程序中打开。
答案 0 :(得分:1)
您的代码适合我,但如果我在路径中使用空格,我会得到相同的错误。要修复此问题,您的路径必须以“(例如”C:\ youPath“)开头和结尾。将代码更改为:
Public Sub OpenFile(ByVal ImagePath As String)
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & ImagePath & chr(34)
End Sub
答案 1 :(得分:1)
就像我在上面的评论中提到的那样,当找不到文件时,应该弹出该错误消息。
这是测试它的一种方法。
Const ErrNo = &H80070002
Sub Sample()
On Error Resume Next
OpenFile "C:\ImaginaryFile.pdf"
If Err.Number = ErrNo Then
MsgBox "File Not Found"
End If
On Error GoTo 0
End Sub
Public Sub OpenFile(ByVal ImagePath As String)
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run ImagePath
End Sub