VBA Word - 具有初始文件名的另存为对话框

out*_*ind 7 vba ms-word

我有一个vba宏,它对当前文档进行了一些更改并确定了应该用于它的文件名 - 如果文档没有保存为该文件名但是应该提示用户这样做(但应该能够改变)默认设置).

我发现两种可能性都不完美(我需要混合使用这两种).

第一种方法:

Application.Dialogs(wdDialogFileSaveAs).Show
Run Code Online (Sandbox Code Playgroud)

打开Save As对话框并允许您更改文件的格式和名称,但默认文件名是旧文件名或文档的标题(最多为第一个特殊字符,如空白或-)(如果尚未保存) - 更改文档的标题几乎没有帮助,因为建议的文件名将包含-).是否可以更改Save As对话框中显示的初始文件名?

第二种方法:

Application.FileDialog(msoFileDialogSaveAs).InitialFileName = filename
Dim choice As Integer
choice = Application.FileDialog(msoFileDialogSaveAs).Show
If choice <> 0 Then
    filename = Application.FileDialog(msoFileDialogSaveAs).SelectedItems(1)
    Call ActiveDocument.SaveAs(filename:=filename, FileFormat:=wdFormatDocumentDefault)
End If
Run Code Online (Sandbox Code Playgroud)

FileDialog只会选择一个文件名,所以我们必须明确地保存它.这种方法将显示filename我想要的,但如果用户将后缀更改为例如.pdf文件仍将以.docx格式保存(使用后缀.pdf).我并没有计划在这里对用户需要不同格式的罕见情况进行大量区分.docx.有没有一种简单的方法可以使用第二种方法以正确的格式保存文件?

Sta*_*ley 7

您是否尝试将Call ActiveDocument.SaveAs替换为

Application.FileDialog(msoFileDialogSaveAs).Execute
Run Code Online (Sandbox Code Playgroud)