当生成内容 Table 时在 MS Word 中更改文档时功能失败
Function fails when document is changed in MS Word when generating Table of Content
'''
当我使用下面的代码时,它在创建它的文档中工作。如果我更改文件,它会失败。有谁知道为什么?
'''
'
Sub AddTOC() 'Need to find how to stop going in error on doc change
Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=0
Application.Templates( _
"C:\Users\Sean Celestin\AppData\Roaming\Microsoft\Document Building Blocks33\Built-In
Building Blocks.dotx" _
).BuildingBlockEntries("Automatic Table 1").Insert Where:=Selection.Range _
, RichText:=True
Selection.InsertBreak Type:=wdPageBreak
End Sub
'
下面的代码本质上做了同样的事情,但没有将内容的 Table 嵌入到构建块条目使用的容器中。当 TOC 更新时,该容器会对性能造成重大影响。通过不使用 Selection,代码也更高效。
Sub AddTOC()
Application.ScreenUpdating = False
With ActiveDocument
.Range(0, 0).Text = vbCr & Chr(12)
.Fields.Add .Range(0, 0), wdFieldEmpty, "TOC \o ""1-3"" \h \z \u", False
.Range(0, 0).Text = "Contents" & vbCr
.Range.Paragraphs.First.Style = "TOC Heading"
End With
Application.ScreenUpdating = True
End Sub
''' 当我使用下面的代码时,它在创建它的文档中工作。如果我更改文件,它会失败。有谁知道为什么? '''
'
Sub AddTOC() 'Need to find how to stop going in error on doc change
Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=0
Application.Templates( _
"C:\Users\Sean Celestin\AppData\Roaming\Microsoft\Document Building Blocks33\Built-In
Building Blocks.dotx" _
).BuildingBlockEntries("Automatic Table 1").Insert Where:=Selection.Range _
, RichText:=True
Selection.InsertBreak Type:=wdPageBreak
End Sub
'
下面的代码本质上做了同样的事情,但没有将内容的 Table 嵌入到构建块条目使用的容器中。当 TOC 更新时,该容器会对性能造成重大影响。通过不使用 Selection,代码也更高效。
Sub AddTOC()
Application.ScreenUpdating = False
With ActiveDocument
.Range(0, 0).Text = vbCr & Chr(12)
.Fields.Add .Range(0, 0), wdFieldEmpty, "TOC \o ""1-3"" \h \z \u", False
.Range(0, 0).Text = "Contents" & vbCr
.Range.Paragraphs.First.Style = "TOC Heading"
End With
Application.ScreenUpdating = True
End Sub