Word:更新尚未保存的文档位置字段

Word:更新尚未保存的文档位置字段

因此,由于 VBA 没有onSaveafterSave事件,我很难找到保存文档和更新文档位置(保存后)的方法。

因此,此文档最常见的使用方式是:

  1. 从模板创建新文档
  2. 編輯文檔
  3. 将文档另存为(网络中的某个位置)

我的老板被他所有的文件弄得一头雾水,很难再找到它们。
所以他想看看这些文件保存在哪里。
我在页脚中添加了文档位置字段,并在 VBA 项目中添加了此代码。

Sub AutoOpen()
'
' AutoOpen Macro
'
'
   Dim aStory As Range
   Dim aField As Field

   For Each aStory In ActiveDocument.StoryRanges

      For Each aField In aStory.Fields
         aField.Update
      Next aField

   Next aStory

 ' set document as unchanged (prevents save dialog popping up when closing)
 ' further edits will set this back to false and restore
 ' the save dialog on close
 ActiveDocument.Saved = True
End Sub

Private Sub wdApp_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)

    ActiveWindow.ActivePane.View.Type = wdPrintView
    Application.ScreenUpdating = True
    Selection.WholeStory
    ActiveDocument.Fields.Update
    ActiveDocument.Save

End Sub

一切正常,直到 activeDocument.Save 点,并且必须至少保存一次。
这也是显而易见的,因为我假设 beforeSave 事件发生在正确保存之前,因此没有位置路径...我该怎么做才能解决这个问题?

答案1

此字段将通过打印预览进行更新。因此,我使用的技巧是在 AutoOpen 宏中创建打印预览。

Sub AutoOpen()
    Application.Run MacroName:="MathTypeCommands.UIWrappers.FilePrintPreview"
    ActiveDocument.ClosePrintPreview
End Sub

相关内容