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

时间:2015-10-06 09:55:23

标签: vba ms-word

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

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

第一种方法:

Application.Dialogs(wdDialogFileSaveAs).Show

打开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

FileDialog将仅选择文件名,因此我们必须明确地保存它。 此方法将显示我想要的filename,但如果用户将后缀更改为例如.pdf,则文件仍将以.docx格式保存(使用后缀 .pdf )。我不打算在这里针对极少数案例区分大量用户需要与.docx不同的格式。有没有一种简单的方法可以使用第二种方法以正确的格式保存文件?

2 个答案:

答案 0 :(得分:7)

您是否尝试使用

替换Call ActiveDocument.SaveAs行
Application.FileDialog(msoFileDialogSaveAs).Execute

答案 1 :(得分:-1)

窗口的设置“查看选项卡 - 文件扩展名”可能会影响这一点。 打开它看看它是否会修复它。