我想在 Microsoft Word 2007 中定义一个宏,该宏在按下热键时插入具有提供的自动样式的目录。我成功定义了一个宏来插入一个非样式(例如基本)目录,如下所示:
Sub InsertTableOfContents()
'
' InsertTableOfContents Macro
'
'
With ActiveDocument
.TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _
True
.TablesOfContents(1).TabLeader = wdTabLeaderDots
.TablesOfContents.Format = wdIndexIndent
End With
End Sub
但是,当我尝试插入样式如下的目录时:
Sub InsertStyledTOC()
'
' Macro to insert a table of contents styled like Automatic Table 2
'
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Automatic Table 2"). _
Insert Where:=Selection.Range, RichText:=True
End Sub
我收到以下错误:
运行时错误 5941 请求的集合成员不存在
我相信这表明BuildingBlockEntries
(例如自动表2)的引用成员不存在,但我不清楚为什么或如何更正它。
感谢您的帮助
编辑- 我尝试按照建议使用应用程序默认构建块模板的文件路径:
Application.Templates("C:\Program Files\Microsoft Office\Office12\Document Parts\1033\Building Blocks.dotx").BuildingBlockEntries("Automatic Table 2").Insert Where:=Selection.Range _
, RichText:=True
但是,我仍然收到错误:Run-time error 5941 The requested member of the collection does not exist