我有一个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
不同的格式。有没有一种简单的方法可以使用第二种方法以正确的格式保存文件?
答案 0 :(得分:7)
您是否尝试使用
替换Call ActiveDocument.SaveAs行Application.FileDialog(msoFileDialogSaveAs).Execute
答案 1 :(得分:-1)
窗口的设置“查看选项卡 - 文件扩展名”可能会影响这一点。 打开它看看它是否会修复它。