如何确定MS Word宏中表格的页码?

时间:2016-06-23 19:06:53

标签: vba word-vba

我在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|       |
|               |               |
+-------------------------------+

1 个答案:

答案 0 :(得分:5)

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

如果您有任何其他问题,请不要犹豫。