【问题标题】:VBA - Set Default Save As Name Without Opening DialogVBA - 设置默认另存为名称而不打开对话框
【发布时间】:2021-01-20 12:34:42
【问题描述】:

我在 Access 中使用 VBA 创建了一个 Word 文档,方法是创建一个新的 Word.Application,使用 Documents.Add 导入一个文档,然后进行所需的更改。一旦进行了更改,文档就会被激活并且 Word 会获得焦点。

我正在尝试更改用户第一次尝试单击此文档中的“另存为”时出现的建议名称,但没有立即打开对话框。

我已经设置了一个标题使用

.ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle) = "Title"

一旦文档被激活,但我遇到了一些奇怪的行为。

我第一次在文档上单击“另存为”时,会出现一个根据文档内容自动建议的名称。但是,当我关闭此对话框并再次单击“另存为”时,会出现正确的名称。

似乎另一个用户遇到了这个问题here

是否有对此行为的解释/修复,如果没有,我可以使用其他方法吗?

我们将不胜感激。

【问题讨论】:

    标签: vba ms-access ms-word


    【解决方案1】:

    这是我几年前想出的。它还设置了.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
    

    【讨论】:

    • 非常感谢您的回答,这完全解决了我的问题。我可能要补充的一件事是,在玩过它之后,看起来 Word 也会在“-”处截断文件名,但这很容易解决,再次感谢
    • 很高兴知道!我只遇到过问题,例如“Dr. John Smith”,但我们也有一些名字带有“-”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2018-06-26
    相关资源
    最近更新 更多