Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA。正在打开文件及其关联的应用程序,其路径存储在变量中_Vba - Fatal编程技术网

VBA。正在打开文件及其关联的应用程序,其路径存储在变量中

VBA。正在打开文件及其关联的应用程序,其路径存储在变量中,vba,Vba,请帮忙 我不知道这为什么不起作用: Public Sub OpenFile(ByVal ImagePath As String) Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.Run ImagePath End Sub 我得到一个例外: (&H80070002) 我试图打开一个文件,其路径存储在变量ImagePath中,该变量是一个字符串 情景: I

请帮忙

我不知道这为什么不起作用:

Public Sub OpenFile(ByVal ImagePath As String)    
   Dim WshShell As Object 
   Set WshShell = CreateObject("WScript.Shell")
   WshShell.Run ImagePath    
End Sub
我得到一个例外:
(&H80070002)

我试图打开一个文件,其路径存储在变量
ImagePath
中,该变量是一个字符串

情景:

  • ImagePath=“C:\helloWorld.txt”
当我调用这个函数时。我想用它的相关软件打开这个文件。 在本例中,是一个文本查看器

如果是pdf文件,我希望它在pdf查看器中打开


文件关联在各自的应用程序中打开。

您的代码适用于我,但如果我在路径中使用空格,则会出现相同的错误。若要解决此问题,路径必须以“(例如“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

正如我在上面的评论中提到的,当找不到文件时,应该会弹出错误消息

这里有一种方法来测试它

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

您是否在某个地方有一个全局变量,分配给它
“C:\helloWorld.txt“
而不是将其传递到sub?文件是否存在于该路径中?否,我想将该路径作为变量传递。
&H80070002
是错误号。您收到的错误消息是什么?。如果我没有错,那么当找不到文件时,应该会弹出错误消息。此代码与另一个使用vba进行脚本编写的应用程序集成。我不会用空格出现此错误。。在路径或文件名中。。。