GetSaveAsFilename默认文件夹

lov*_*ubs 6 excel vba excel-vba

GetSaveAsFilename在VBA for Excel中使用.有没有办法让这个默认文件夹打开?例如,我总是希望它在C:\MyDocuments\Music调用它时开始.

Jea*_*ett 6

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
Run Code Online (Sandbox Code Playgroud)

请注意,.InitialFileName超过256个字符将导致运行时错误.

请参阅VBA帮助FileDialog.它有很多有用的属性,包括例如AllowMultiSelect(虽然不可否认这个在保存时无关紧要).


And*_*ven 5

这有效:

x = Application.GetSaveAsFilename(InitialFileName:="C:\mydocuments\music\", _
    fileFilter:="Text Files (*.*), *.*")
Run Code Online (Sandbox Code Playgroud)

但是,如果filespec中有空格,它将变得有些棘手。例如,这:

x = Application.GetSaveAsFilename(InitialFileName:="%USERPROFILE%\My Documents\My Music", _
    fileFilter:="Text Files (*.*), *.*")
Run Code Online (Sandbox Code Playgroud)

仅到达“我的文档”,并认为“我的音乐”是文件名。希望这可以帮助。