我需要创建一个目录,该目录存在于第2页的顶部。在我的代码中,我正在导入自定义标题页面(构建块),还必须根据文本中的文本创建目录。文献。目录工作/运行完美,它位于错误的位置。
Sub TitlePage()
Application.Templates( _
mypath). _
BuildingBlockEntries("BuildingBlockName").Insert Where:=Selection.Range, RichText:=True
End Sub
Sub ToC()
Selection.GoTo what:=wdGoToLine, Which:=wdGoToAbsolute
Selection.EscapeKey
Selection.Range.InsertBreak
Selection.GoTo what:=wdGoToPage, Which:=wdGoToNext
Selection.EscapeKey
ActiveDocument.TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
True, UseHeadingStyles:=True, IncludePageNumbers:=True, _
UseHyperlinks:=True, HidePageNumbersInWeb _
:=True, UseOutlineLevels:=False
End Sub
如您所见,这些是两个不同的宏,它们是较大宏的一部分。我在代码的主要部分使用调用函数来保持组织有序。有没有办法将目录固定到第2页?
P.S。我知道我犯了使用选择属性的罪。这是导航到第一行,然后导航到第二页,然后转义选择,并插入光标最后的ToC。 我很绝望。
答案 0 :(得分:1)
基于以下内容的方法:
Sub ToCAndTitle()
With ActiveDocument
'Insert a Section break before existing content
.Range(0, 0).InsertBreak Type:=wdSectionBreakNextPage
.TablesOfContents.Add Range:=.Range(0, 0), RightAlignPageNumbers:=True, _
UseHeadingStyles:=True, IncludePageNumbers:=True, UseHyperlinks:=True, _
HidePageNumbersInWeb:=True, UseOutlineLevels:=False
'Insert a page break before existing content
.Range(0, 0).InsertBreak Type:=wdPageBreak
Application.Templates(mypath).BuildingBlockEntries("BuildingBlockName").Insert Where:=.Range(0, 0), RichText:=True
End With
End Sub
插入分节符允许页面编号在TOC之后开始,如果这是你想要的。