VBA - 设置默认另存为名称而不打开对话框
VBA - Set Default Save As Name Without Opening Dialog
我在 Access 中使用 VBA 创建了一个 Word 文档,方法是创建一个新的 Word.Application,使用 Documents.Add 导入一个文档,然后进行所需的更改。完成更改后,文档将被激活,Word 将获得焦点。
我正在尝试更改当用户首次尝试单击此文档中的“另存为”但没有立即打开对话框时出现的建议名称。
我已经使用
设置了标题
.ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle) = "Title"
一旦文档被激活,但我遇到了一些奇怪的行为。
我第一次在文档上单击“另存为”时,会出现一个根据文档内容自动建议的名称。但是,当我关闭此对话框并再次单击“另存为”时,会出现正确的名称。
似乎另一个用户遇到了这个问题 here。
是否有针对此行为的 explanation/fix,如果没有,是否有我可以使用的替代方法?
非常感谢您的帮助。
这是我几年前想到的。它还设置 .BuiltInDocumentProperties(wdPropertyTitle)
.
key是使用,不显示,oWord.Dialogs(wdDialogFileSummaryInfo)
。
' Window title
sWindowTitle = "Document for " & sName
' http://wordmvp.com/FAQs/MacrosVBA/SetDefFilename.htm
With oWord.Dialogs(wdDialogFileSummaryInfo)
' Several characters will cause Word to truncate the default file name when saving
sClean = sWindowTitle
sClean = Replace(sClean , ".", "") ' Dr. John Smith
sClean = Replace(sClean , "-", " ") ' Anne-Marie Jones
' ... expand as needed ...
.Title = sClean
.Execute
End With
With oDoc
.ActiveWindow.Caption = sWindowTitle
End With
我在 Access 中使用 VBA 创建了一个 Word 文档,方法是创建一个新的 Word.Application,使用 Documents.Add 导入一个文档,然后进行所需的更改。完成更改后,文档将被激活,Word 将获得焦点。
我正在尝试更改当用户首次尝试单击此文档中的“另存为”但没有立即打开对话框时出现的建议名称。
我已经使用
设置了标题.ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle) = "Title"
一旦文档被激活,但我遇到了一些奇怪的行为。
我第一次在文档上单击“另存为”时,会出现一个根据文档内容自动建议的名称。但是,当我关闭此对话框并再次单击“另存为”时,会出现正确的名称。
似乎另一个用户遇到了这个问题 here。
是否有针对此行为的 explanation/fix,如果没有,是否有我可以使用的替代方法?
非常感谢您的帮助。
这是我几年前想到的。它还设置 .BuiltInDocumentProperties(wdPropertyTitle)
.
key是使用,不显示,oWord.Dialogs(wdDialogFileSummaryInfo)
。
' Window title
sWindowTitle = "Document for " & sName
' http://wordmvp.com/FAQs/MacrosVBA/SetDefFilename.htm
With oWord.Dialogs(wdDialogFileSummaryInfo)
' Several characters will cause Word to truncate the default file name when saving
sClean = sWindowTitle
sClean = Replace(sClean , ".", "") ' Dr. John Smith
sClean = Replace(sClean , "-", " ") ' Anne-Marie Jones
' ... expand as needed ...
.Title = sClean
.Execute
End With
With oDoc
.ActiveWindow.Caption = sWindowTitle
End With