Gar*_*ent 7 excel vba wsh excel-vba
我有一些简单的Excel VBA代码,可以打开非Excel文件,如:
Sub scriptTest()
Set objshell = CreateObject("Wscript.Shell")
objshell.Run ("C:\TestFolder\Book1.pdf")
Set objshell = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
运行此命令会在Acrobat Reader中打开该文件.但是,如果我尝试打开一个名称包含空格字符的文件,例如:
Sub scriptTest()
Set objshell = CreateObject("Wscript.Shell")
objshell.Run ("C:\TestFolder\Bo ok1.pdf")
Set objshell = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
我明白了:
如果我使用RunWindows开始菜单中的命令,两个文件都打开正常.我怎样才能克服这个问题?
Yow*_*E3K 11
执行语句时objshell.Run ("C:\TestFolder\Bo ok1.pdf"),您要求shell执行该命令
C:\TestFolder\Bo ok1.pdf
Run Code Online (Sandbox Code Playgroud)
这被解释为C:\TestFolder\Bo.exe使用参数执行程序的请求ok1.pdf.
您实际上希望shell执行命令
"C:\TestFolder\Bo ok1.pdf"
Run Code Online (Sandbox Code Playgroud)
命令解释器使用引号将命令的某些部分"分组"在一起.
要获取该命令,您需要执行该语句
objshell.Run """C:\TestFolder\Bo ok1.pdf"""
Run Code Online (Sandbox Code Playgroud)