当用户键入任何内容时更新 Word 文档中的所有字段
Update all fields in a Word document when user types anything
我想要一种自动更新文档中所有字段的方法。我目前有一个链接到 F9 的宏。此宏更新页眉和页脚中的所有字段,以及主文档中的所有字段。
Sub UpdateFields()
Dim oStory As Range
For Each oStory In ActiveDocument.StoryRanges
oStory.Fields.Update
If oStory.StoryType <> wdMainTextStory Then
While Not (oStory.NextStoryRange Is Nothing)
Set oStory = oStory.NextStoryRange
oStory.Fields.Update
Wend
End If
Next oStory
Set oStory = Nothing
End Sub
除了在每个键上设置宏之外,我如何才能让这个宏在用户键入任何内容时运行?
例如,用户可以在页脚或页眉中放置一个显示字符数量的字段。如果是这种情况,我希望能够在输入时看到字符字段更新。
以下是 Word VBA 中的事件:
对于申请:
https://msdn.microsoft.com/EN-US/library/office/dn320473.aspx
对于文档:
https://msdn.microsoft.com/EN-US/library/office/dn320613.aspx
我建议您使用 Application.WindowSelectionChange
事件(当活动文档中的选择更改时发生 window):https://msdn.microsoft.com/EN-US/library/office/ff192791.aspx
Public WithEvents appWord As Word.Application
Private Sub appWord_WindowSelectionChange(ByVal Sel As Selection)
UpdateFields
End Sub
如果您需要更多详细信息,可以在这里找到:https://msdn.microsoft.com/library/office/ff746018.aspx
我想要一种自动更新文档中所有字段的方法。我目前有一个链接到 F9 的宏。此宏更新页眉和页脚中的所有字段,以及主文档中的所有字段。
Sub UpdateFields()
Dim oStory As Range
For Each oStory In ActiveDocument.StoryRanges
oStory.Fields.Update
If oStory.StoryType <> wdMainTextStory Then
While Not (oStory.NextStoryRange Is Nothing)
Set oStory = oStory.NextStoryRange
oStory.Fields.Update
Wend
End If
Next oStory
Set oStory = Nothing
End Sub
除了在每个键上设置宏之外,我如何才能让这个宏在用户键入任何内容时运行?
例如,用户可以在页脚或页眉中放置一个显示字符数量的字段。如果是这种情况,我希望能够在输入时看到字符字段更新。
以下是 Word VBA 中的事件:
对于申请: https://msdn.microsoft.com/EN-US/library/office/dn320473.aspx
对于文档: https://msdn.microsoft.com/EN-US/library/office/dn320613.aspx
我建议您使用 Application.WindowSelectionChange
事件(当活动文档中的选择更改时发生 window):https://msdn.microsoft.com/EN-US/library/office/ff192791.aspx
Public WithEvents appWord As Word.Application
Private Sub appWord_WindowSelectionChange(ByVal Sel As Selection)
UpdateFields
End Sub
如果您需要更多详细信息,可以在这里找到:https://msdn.microsoft.com/library/office/ff746018.aspx