我有一个 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
不同的格式的罕见情况,我不打算在这里对情况进行巨大区分。 .有没有一种简单的方法可以使用第二种方法以正确的格式保存文件?
最佳答案
您是否尝试将 Call ActiveDocument.SaveAs 行替换为
Application.FileDialog(msoFileDialogSaveAs).Execute
关于VBA Word - 带有初始文件名的另存为对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966984/