打开名称包含 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"""
我有一些简单的 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"""