我在VBA for Excel中使用GetSaveAsFilename
。有沒有辦法給這個默認文件夾打開?例如,我總是希望它在被調用時從C:\MyDocuments\Music
開始。GetSaveAsFilename默認文件夾
3
A
回答
2
FileDialog
對象提供了比GetSaveAsFilename
(及其兄弟GetOpenFilename
)更靈活的方式。例如:
Dim tuneSaver As FileDialog
Set tuneSaver = Application.FileDialog(msoFileDialogSaveAs)
With tuneSaver
.Title = "Save this tune as..."
.InitialFileName = "C:\MyDocuments\Music\"
' Set other properties here...
.Show
End With
需要注意的是超過256個字符的.InitialFileName
將導致運行時錯誤。
請參閱VBA help on FileDialog
。它有很多有用的特性,包括例如AllowMultiSelect
(儘管當然這個在保存時是不相關的)。
3
在GetSaveAsFilename
之前使用ChDir
。
3
這工作:
x = Application.GetSaveAsFilename(InitialFileName:="C:\mydocuments\music\", _
fileFilter:="Text Files (*.*), *.*")
但是,如果在文件規範有空格就有點棘手。例如,這個:
x = Application.GetSaveAsFilename(InitialFileName:="%USERPROFILE%\My Documents\My Music", _
fileFilter:="Text Files (*.*), *.*")
只獲得我的文檔,並認爲我的音樂是文件名。希望這可以幫助。
+1
錯過了「結束」。這使它成爲一條路徑,而不是文件 – 2011-03-01 06:24:20
+0
@chris:好的。它適用於尾隨\。 – 2011-03-01 13:31:11
完美,謝謝。有沒有一種方法可以將「另存爲類型」設置爲默認值而不是默認值?這是默認的最新/最好的版本的Excel,但我想把它設置爲舊的「.xls」格式(2003年和以前)。 – thornomad 2011-07-25 14:27:33
嗯,也許[此頁](http://msdn.microsoft.com/en-us/library/aa210589%28v=office.11%29.aspx)將有所幫助。但是恐怕'FileDialog'對象在2003以後的Excel版本中不可用(這就是我聽到的,無論如何),所以你的問題可能是沒有意義的。 – 2011-07-25 20:57:15
謝謝 - 我已經閱讀過那一頁......但是,我無法弄清楚。該報告是在2007年生成的,但我需要將輸出保存爲2003年文檔。現在工作很好。只是想刪除一個更多的絆腳石。謝謝! – thornomad 2011-07-26 13:13:25