打开名称包含 Space 的文件

Opening a File whose Name Contains a Space

我有一些简单的 Excel VBA 代码可以打开非 Excel 文件,例如:

Sub scriptTest()
    Set objshell = CreateObject("Wscript.Shell")
    objshell.Run ("C:\TestFolder\Book1.pdf")
    Set objshell = Nothing
End Sub

运行 这会在 Acrobat Reader 中打开文件。但是,如果我尝试打开一个名称包含 space 字符的文件,例如:

Sub scriptTest()
    Set objshell = CreateObject("Wscript.Shell")
    objshell.Run ("C:\TestFolder\Bo ok1.pdf")
    Set objshell = Nothing
End Sub

我得到:

如果我使用 Windows 开始菜单中的 Run 命令,这两个文件都可以正常打开。我该如何克服这个问题??

当执行语句objshell.Run ("C:\TestFolder\Bo ok1.pdf")时,你要求shell执行命令

C:\TestFolder\Bo ok1.pdf

这被解释为请求执行程序C:\TestFolder\Bo.exe,参数为ok1.pdf

您实际上希望shell执行命令

"C:\TestFolder\Bo ok1.pdf"

命令解释器使用引号将命令的 "group" 部分放在一起。

要获取该命令,需要执行语句

objshell.Run """C:\TestFolder\Bo ok1.pdf"""