2017-10-05 13 views
5

Tôi có một số mã Excel VBA đơn giản mở file không Excel như:Mở một tệp có tên chứa một không gian

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

Chạy sẽ mở file trong Acrobat Reader. Tuy nhiên nếu tôi cố gắng để mở một tập tin có tên chứa một không gian nhân vật như:

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

tôi nhận được:

enter image description here

Cả hai file tốt mở nếu tôi sử dụng lệnh Run từ Windows Menu bắt đầu. Làm thế nào tôi có thể khắc phục vấn đề này ??

+0

Hãy thử đặt một hoặc hai backslashes trước không gian trong tên –

+4

Sử dụng 'objshell.Run ("" "C: \ TestFolder \ Bo ok1. pdf "" ")' sao cho tên tệp được đặt trong dấu ngoặc kép. Nếu không, nó cho rằng bạn đang chạy 'C: \ TestFolder \ Bo.exe' với tham số' ok1.pdf' – YowE3K

+0

@MykolaShchetinin Cảm ơn gợi ý, nhưng không có dấu gạch chéo hoặc dấu gạch chéo ngược nào có hiệu lực. –

Trả lời

8

Khi thực hiện báo cáo kết quả objshell.Run ("C:\TestFolder\Bo ok1.pdf"), bạn đang yêu cầu shell để thực hiện lệnh

C:\TestFolder\Bo ok1.pdf 

này được giải thích như là một yêu cầu để thực hiện chương trình C:\TestFolder\Bo.exe với một tham số của ok1.pdf.

Bạn thực sự muốn shell để thực hiện lệnh

"C:\TestFolder\Bo ok1.pdf" 

nơi có dấu ngoặc kép được sử dụng bởi các thông dịch lệnh để "nhóm" các bộ phận của lệnh với nhau.

Để có được lệnh đó, bạn cần phải thực hiện báo cáo kết quả

objshell.Run """C:\TestFolder\Bo ok1.pdf""" 
+0

Wow, 6 phiếu cho chỉ ra khi bạn muốn thoát khỏi một chuỗi trích dẫn bạn cần phải tăng gấp đôi dấu ngoặc kép. Nghiêm túc, điều này chưa được trả lời trước đây? – Lankymart

+0

@Lankymart Không thực sự là dấu ngoặc kép cần phải được thoát, đó là dấu ngoặc kép cần được sử dụng. (Nếu bạn tìm thấy một bản sao tốt, vui lòng đóng câu hỏi và ping tôi để tôi có thể xóa câu trả lời.) – YowE3K

Các vấn đề liên quan