2015-10-06 141 views
5

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

我发现两种可能性都不完美(我需要这两种可能性的组合)。

第一种方法:

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。有没有简单的方法使用第二种方法以正确的格式保存文件?

回答

6

你有没有试着用

Application.FileDialog(msoFileDialogSaveAs).Execute 
+0

更换呼叫ActiveDocument.SaveAs线你该死的权利,感谢 – outofmind

相关问题