【问题标题】:How to update a Table of Tables with macro vba-Word?如何使用宏 vba-Word 更新表格?
【发布时间】:2018-07-02 20:14:26
【问题描述】:

我是 word-vba 宏的初学者(但我非常适合 excel-vba),我正在寻找更新“表格表”。 我已经找到了如何为“目录”和“图表”(使用ActiveDocument.TablesOfContents(1).Update)执行此操作,但 Collection TableOfTables 不存在。 有人知道我必须做什么吗?

提前致谢,

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    没有“表的表”对象或 TableOfTables 集合。 “表格”实际上只是一种“目录”。事实上,“图表”也是如此。如果您查看这些基础的域代码,您会看到所有三个都使用 TOC 域 - “表格”和“图表”将具有像 { TOC \h \z \c "Table" 这样的域代码} 和 { TOC \h \z \c "Figure" },分别。因此,如果您想更新其中任何一个(或您创建的任何自定义类型),但不一定是全部,您可以简单地遍历 TableOfContents 集合并检查 \c 开关后面的内容(如果存在)。同样,您可以遍历 TableOfContents 集合并更新其中的所有项目。因此:

    Sub Demo()
    Application.ScreenUpdating = False
    Dim TOC As TableOfContents
    For Each TOC In ActiveDocument.TablesOfContents
      TOC.Update
      'Or depending on what you want to update:
      'TOC.UpdatePageNumbers
    Next
    Application.ScreenUpdating = True
    End Sub
    

    一种更简单的方法——适用于所有领域——是:

    Sub Demo()
    Application.ScreenUpdating = False
    With ActiveDocument
      .Fields.Update
      .PrintPreview
      .ClosePrintPreview
    End With
    Application.ScreenUpdating = True
    End Sub
    

    【讨论】:

    • 感谢您的回复。我不太明白这句话'If you look at the field codes under these' 你是什么意思?如何访问此代码?此外,当您提到遍历 TableOfContents 集合时,我想我将不得不使用类似 For k=1 to X ActiveDocument.TablesOfContents(k).update Next k 的东西 但是,它仅适用于 k=1 如果我检查 Count 我可以看到这个集合中只有一个项目
    • Word 使用称为字段的对象来维护目录、交叉引用等。您可以通过 Alt-F9 打开/关闭域代码显示。将其切换为“打开”,您可以看到驱动所显示内容的代码。至于只包含一项的 TablesOfContents 集合,这表明您没有单独的“表格”。
    • 好吧,我会把所有这些都记在心里;)再次感谢。正如你在我的另一篇文章中看到的那样,它对我有很大帮助
    【解决方案2】:

    好的,感谢@macropod,我知道如何解决我的问题。 “表格”不是另一个目录,而是另一个数字表格 所以这是我的结局代码:

    Public Sub UpdateAllFiles()
        With ActiveDocument
            .TablesOfContents(1).Update
            .TablesOfFigures(1).Update
            .TablesOfFigures(2).Update
        End With
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 2015-10-17
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多