【问题标题】:Determine number of columns in a table in Word using VBA使用 VBA 确定 Word 中表格中的列数
【发布时间】:2015-07-18 09:23:35
【问题描述】:

只是一个简单的问题。 我在 Word 模板中有这个表,默认情况下有两列。 然后我有了这个按钮,如果他想要另一列,用户可以按下。宏运行插入几个文本占位符并自动格式化某些内容。 但我想要的是某种例程,它基本上检查此表中的列数,如果有两列,输入的文本自动为“第 3 列”,如果有三列,则文本应为“第 4 列"。如果我能找出如何找到列数应该很简单。

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    一个表对象知道它有多少列,只需检查 Columns.Count 属性。

    ThisDocument.Tables(1).Columns.Count
    

    【讨论】:

    • 谢谢,真的很简单! :) 但这是我遇到的事情。我使用您在上面提供的代码。当我打开模板(.dotm)并运行宏时,这工作正常。但是,奇怪的是,当我双击模板,使文档成为基于模板的“文档 1”文档时,计数不起作用。现在我在表中有 6 列,但读取为 2。当我打开模板时不会发生这种情况。这应该发生的任何已知原因?我那里也只有一张桌子。
    • 然后尝试使用 ActiveDocument 而不是 ThisDocument。 ThisDocument 是对宏所在的文档的引用,而 ActiveDocument 是对具有焦点的文档的引用。听起来,在您从模板生成新文档后,ThisDocument 引用不再是您想要的。
    【解决方案2】:

    这行得通:

    Sub CountColumns()
        Dim d As Document
        Set d = ActiveDocument
        Dim t As Table
        Set t = d.Tables(1)
        Debug.Print t.Columns.Count
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 1970-01-01
      相关资源
      最近更新 更多