Opening a File whose Name Contains a Space

Viewed 9439

I have some simple Excel VBA code that opens non-Excel files like:

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

Running this opens the file in the Acrobat Reader. However if I try to open a file whose name contains a space character like:

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

I get:

enter image description here

Both files open fine if I use the Run command from the Windows Start menu. How can I overcome this problem ??

1 Answers

When executing the statement objshell.Run ("C:\TestFolder\Bo ok1.pdf"), you are asking the shell to execute the command

C:\TestFolder\Bo ok1.pdf

This is interpreted as being a request to execute the program C:\TestFolder\Bo.exe with a parameter of ok1.pdf.

You actually want the shell to execute the command

"C:\TestFolder\Bo ok1.pdf"

where the quotation marks are used by the command interpreter to "group" parts of the command together.

To obtain that command, you need to execute the statement

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