Папка GetSaveAsFilename по умолчанию - PullRequest
6 голосов
/ 01 марта 2011

Я использую GetSaveAsFilename в VBA для Excel. Есть ли способ дать этому папку по умолчанию для открытия? Например, я всегда хочу, чтобы он начинался с C:\MyDocuments\Music, когда он вызывается.

Ответы [ 3 ]

6 голосов
/ 02 марта 2011

Объект 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

Обратите внимание, что .InitialFileName длиннее 256 символов вызовет ошибку во время выполнения.

См. Справка VBA по FileDialog. Он имеет довольно много полезных свойств, в том числе, например, AllowMultiSelect (хотя по общему признанию этот не имеет значения при сохранении).

5 голосов
/ 01 марта 2011

Это работает:

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

Однако, если у вас есть пробелы в спецификациях файлов, это становится немного сложнее.Например, это:

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

подходит только к моим документам и думает, что My Music - это имя файла.Надеюсь, это поможет.

3 голосов
/ 01 марта 2011

Используйте ChDir до GetSaveAsFilename.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...