【问题标题】:How can I determine the page number of a table in MS Word Macro?如何确定 MS Word 宏中表格的页码?
【发布时间】:2016-06-26 12:20:14
【问题描述】:

我在 MS Word 2016 中有一个包含 200 多页和更多表格的文档。我需要将奇数页上的所有表格对齐到左侧,并且我需要将偶数页上的所有表格对齐到右侧。除了一个或两个表,如果需要我可以手动修改,没有一个表跨越多个页面。使用

Dim oTable As Table
For Each oTable In ActiveDocument.Tables
    oTable.Rows.Alignment = wdAlignParagraphRight
Next oTable

我可以将所有表格向右对齐。当使用 wdAlignParagraphLeft 而不是 wdAlignParagraphRight 时,我可以将所有表格对齐到左侧。但我不知道如何获取表格的页码,以便我可以根据表格所在的页码分配对齐方式。

(这个想法是,如果打印成一本书,桌子总是在内侧。如果有更好的方法来完成,我会听。如果打印成一本书并且每页旁边有两页其他的表应该像这样在内侧:)

+-------------------------------+
|    Even Page  |   Odd page    |
+---------------+---------------+
|       |Table| | |Table|       |
|               |               |
+-------------------------------+

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    Yankee,您可以使用以下方法确定特定表格所在的页码:

    oTable.Range.Information(wdActiveEndPageNumber)
    

    因此,要遍历文档中的所有表格并根据它们所在页面的奇偶性质对齐它们,您可以使用:

    Dim oTable As Table
    Dim PageNo As Integer
    
    For Each oTable In ActiveDocument.Tables
        PageNo = oTable.Range.Information(wdActiveEndPageNumber)
        If PageNo Mod 2 = 0 Then    'The page number is EVEN.
            oTable.Rows.Alignment = wdAlignParagraphRight
        Else                        'The page number is ODD.
            oTable.Rows.Alignment = wdAlignParagraphLeft
        End If
    Next oTable
    

    如果您还有其他问题,请随时提问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      • 2020-08-31
      相关资源
      最近更新 更多