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

9

我有一个VBA宏,可以对当前文档进行一些更改,并确定应该使用的文件名 - 如果该文档尚未保存为该文件名,则应提示用户这样做(但应能够更改默认设置)。

我找到了两个可能性,但都不完美(我需要两者的混合)。

第一种方法:

Application.Dialogs(wdDialogFileSaveAs).Show

打开“另存为”对话框并允许您更改文件的格式和名称,但默认文件名是旧文件名或文档的标题(直到第一个特殊字符,如空格或“-”)。如果尚未保存文档,则是文档的标题。更改文档标题没有太大帮助,因为建议的文件名将包含“-”。是否可以更改“另存为”对话框中显示的初始文件名?
第二种方法:
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
< p > FileDialog 只会选择文件名,因此我们必须显式保存它。通过这种方法,我想显示所需的 filename,但如果用户将后缀更改为例如 .pdf,则文件仍将以 .docx 格式保存(使用后缀 .pdf )。我没有计划在这里对案例进行巨大区分,因为用户需要与.docx 不同的格式是很少见的。是否有一种简单的方法可以使用第二个方法以正确的格式保存文件?< / p >
2个回答

8

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

Application.FileDialog(msoFileDialogSaveAs).Execute

-1

Windows的设置“查看选项卡-文件名扩展名”可能会影响此问题。打开它,看看是否可以解决。


1
答案必须确定,不要使用“可能”等词语……如果您对答案不确定,请使用注释。 - Pejman Kheyri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接