2013-11-15 95 views
0

我試圖使用Shell函數從Excel-VBA打開圖像。 第一行代碼有效,但我不希望它在Paint中打開。作爲第二行代碼建議,我希望它在Windows Live照片庫中打開,但此行不起作用。誰能告訴我問題是什麼?當路徑包含空格時正確使用Shell函數

Shell("mspaint.exe C:\test\Data_Sample\Figures\" & ActiveCell.Value & ".jpeg") 
Shell ("WLXPhotoGallery.exe C:\test\Data_Sample\Figures\" & ActiveCell.Value & ".jpeg") 

編輯 作爲BK201的建議,我試着寫的完整路徑WLXPhotoGallery可執行文件;雖然這確實打開了Windows Live照片庫,但並未打開我需要的圖像。爲什麼?

PGallery = "C:\Program Files (x86)\Windows Live\Photo Gallery\WLXPhotoGallery.exe" 
Pic = "C:\test\Data_Sample\Figures\" & ActiveCell.Value & ".jpg" 
Shell (PGallery & " " & Pic) 
+0

如果在Windows命令提示符下鍵入此命令,它是否工作? –

回答

0

嘗試使用Windows Live照片庫的完整路徑。這是因爲mspaint.exe可以在system32中找到,這就是爲什麼可以在沒有寫出路徑的情況下調用它。 WLXPG並非如此。

Sub OpenPic() 

PGallery = "C:\Program Files\Windows Live\Photo Gallery\WLXPhotoGallery\WLXPhotoGallery.exe" 
Pic = 'insert path here of picture/photo 
Shell (PGallery & " " & Pic) 

End Sub 

這是未經測試的,所以根據需要進行修改。

+0

我已將代碼更改爲我的電腦中的路徑,雖然它打開了Windows Live照片庫,但並未打開我需要的圖像。 – user2837847

+0

嘗試在Shell函數內聲明整個路徑的舊方法。我通常不使用Shell,因此我不知道是否可以將聲明的字符串傳遞給它。基本上,請嘗試:Shell(「C:\ Program Files ... C:\ test \ Data_Sample \ Figures \」&ActiveCell.Value&「.jpg」)'。 :) – Manhattan

+0

nope,它仍然不起作用... – user2837847

0

問題可能是你錯過了"報價。在"引號中圍繞您的路徑,否則Windows可能無法正確解釋包含空格的路徑。由於它們在一個字符串中,所以你實際上必須寫出像這樣的引號""。結果:

PGallery = """C:\Program Files (x86)\Windows Live\Photo Gallery\WLXPhotoGallery.exe""" 
Pic = """C:\test\Data_Sample\Figures\" & ActiveCell.Value & ".jpg""" 
Shell (PGallery & " " & Pic)