2015-10-06 173 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

相關問題