我的word文档有一个宏,用于更新所有字段和所有目录。
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
Dim TOC As TableOfContents
For Each TOC In ActiveDocument.TablesOfContents
TOC.Update
Next
End Sub
然而,当它运行时,我收到此错误。
答案 0 :(得分:3)
问题是由命名子UpdateFields
引起的。由于未知原因,此名称在Word VBA中保留。将sub重命名为允许的名称(例如,FieldUpdates
),代码将正常工作。
答案 1 :(得分:0)
抛出的错误表示为update指定的TableOfContents不存在。使用For ... Each
循环访问其某些集合时,Word将产生此类错误。 Word编辑文档时可能已更改的TOC数量可能已更改。要避免该错误,请避免For ... Each
枚举。请改用以下代码。
Dim i As Integer
With ActiveDocument
For i = 1 To .TablesOfContents.Count
.TableOfContents(i).Update
Next i
End With