我有一些简单的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
我得到:
如果我使用 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"
命令解释器使用引号将命令的各个部分“组合”在一起。
要获得该命令,您需要执行该语句
objshell.Run """C:\TestFolder\Bo ok1.pdf"""