打开名称包含空格的文件

时间:2017-10-05 19:29:47

标签: excel-vba wsh vba excel

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

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

运行此程序会在Acrobat Reader中打开该文件。但是,如果我尝试打开一个名称包含空格字符的文件,例如:

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

我明白了:

enter image description here

如果我使用Windows“开始”菜单中的Run命令,则两个文件都可以正常打开。我怎样才能克服这个问题?

1 个答案:

答案 0 :(得分:11)

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

C:\TestFolder\Bo ok1.pdf

这被解释为执行参数C:\TestFolder\Bo.exe的{​​{1}}程序的请求。

您实际上希望shell执行命令

ok1.pdf

其中引号由命令解释器用于" group"部分命令在一起。

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

"C:\TestFolder\Bo ok1.pdf"