我正在创建一个文档模板,该模板最终将用作客户某些Excel数据的目标。这将面对客户,并由本人以外的其他用户处理,因此我需要一个自动化的解决方案。
我正在使用MS Word的CreateDate字段对文档的创建添加日期戳。这仅会在使用模板创建文档时触发,并在“另存为”后重命名基于模板创建的文档。但是,在使用新文件名保存后,您必须手动更新域代码。
我是VBA的业余爱好者,但是具有以下代码来更新字段(来自Greg Maxey):
Public Sub UpdateAllFields()
Dim rngStory As Word.Range
Dim lngJunk As Long
Dim oShp As Shape
lngJunk = activeDocument.Sections(1).Headers(1).Range.StoryType
For Each rngStory In activeDocument.StoryRanges
'Iterate through all linked stories
Do
On Error Resume Next
rngStory.Fields.Update
Select Case rngStory.StoryType
Case 6,7,8,9,10,11
If rngStory.ShapeRange.Count > 0 Then
For Each oShp In rngStory.ShapeRange
If oShp.TextFrame.HasText Then
oShp.TextFrame.textrange.Fields.Update
End If
Next
End If
Case Else
'Do Nothing
End Select
On Error GoTo 0
'Get next linked story (if any)
Set rngStory = rngStory.NextStoryRange
Loop Until rngStory Is Nothing
Next
End Sub
我知道BeforeSave事件,但是Word没有“保存后”事件,并且我不知道如何触发代码。有人帮忙吗?