在Word VBA中另存为之后创建/更新页脚

时间:2019-02-09 15:51:38

标签: vba ms-word

保存新的MS Word文件时,我想生成一个自动页脚,如果另存为文件,则要更新页脚。

下面的代码通常可以与旧的Word一起使用。使用最新的Word,只有在我按键盘上的F12键时它才起作用。任何帮助将不胜感激!

Sub FileSaveAs()

    Dialogs(wdDialogFileSaveAs).Show

    Dim i As Long
    Dim ThisPath As String
    Dim pName As String
    Dim TextInFooter As String
    Dim FullName As String

    ThisPath = ActiveDocument.Path
    pName = ActiveDocument.Name
    FullName = ThisPath & "\" & pName
    TextInFooter = "This file was saved in: " & FullName & " on the " & Now

    For i = 1 To ActiveDocument.Sections.Count
        With ActiveDocument.Sections(i)
            .Footers(wdHeaderFooterPrimary).Range.Text = TextInFooter
        End With
    Next
End Sub

1 个答案:

答案 0 :(得分:0)

您注意到,新版本仅在F12上触发FileSaveAs。不知道这是错误还是功能。

如果仅显示文档以印刷或公开形式显示的信息很重要-我建议的解决方法:

您可以避免在保存时插入页脚,并使用字段插入页脚,因为文档已包含要插入的信息。您只需要使其可见即可。页脚将是:

This file was saved as { FILENAME \p } the { SAVEDATE \@ "dd.MM.yyyy HH:mm:ss"}

根据需要调整日期/时间格式。 您必须强制更新字段-这是自动宏所在的位置。

Sub AutoOpen()
    ' set fields to update before printing (if saved as and printed while open)
    Options.UpdateFieldsAtPrint = True
    ' Update all current fields in just opened document
    ActiveDocument.Fields.Update
End Sub

Sub AutoClose()
    ' update fields when closing
    ActiveDocument.Fields.Update
End Sub

唯一的区别是,您具有完整的路径,包括文件名和扩展名。此外,有时可能会保存文件,但尚未打开/关闭/打印文件,并且还没有更新字段。

理论上,您也可以使用AutoOpen宏(activedocument.fields.add)将页脚插入文档中。