Word toc 显示级别调整使用 VBA

Word toc show levels adjustment using VBA

总的来说,我对 VBA 还比较陌生,但目前我正在使用 IBM 的 Rational 发布引擎发布文档,该引擎从 DOORS(动态面向对象的需求系统)中发布文档。发布后,有一系列宏可用于扩展 OLE、合并段落、centerFigures 等。我想添加一个宏来调整我的 table 内容以仅显示级别 2。我在想一些事情像下面这样会起作用,但没有取得太大的成功。

Sub Tocadjust()

    Dim toc As TableOfContents
    Dim tocEntry As Field
    
    Set toc = ActiveDocument.TableOfContents(1)
    For Each tocEntry In toc.Range.Fields
        tocEntry.Select
        toc.UpperHeadingLevel = 1
        toc.LowerHeadingLevel = 2
    Next
    
End Sub

TableWord 中的内容本身就是字段。

它们通常不包含字段。他们确实有开关。

运行 下面的代码添加了一个将 TOC 限制为级别 1 和 2 的开关。

Sub TocAdjust()
    ' Charles Kenyon
    ' Limit first TOC to levels 1 and 2
    '
    ActiveDocument.TablesOfContents(1).LowerHeadingLevel = 2
    ActiveDocument.TablesOfContents(1).UpperHeadingLevel = 1
End Sub

如果没有 Table 的内容字段,这将引发错误。请注意 Table 的图也使用了 TOC 字段。

下面是 TOC 字段在 运行 宏之前和之后的样子。

您的代码试图作用于“条目”而不是一般的字段。