在当前查看的页面上选择表格(当前未选中的页面)

时间:2018-05-24 22:33:12

标签: vba ms-word word-vba

我在Word中设置了一些自定义按钮,用于填充模板上的表格。这是我用来遍历第二个表的单元格的示例:

ActiveDocument.Tables(2).Cell(i, j).Range

起初,这对我来说效果很好,因为每个模板中总有一页。这已不再是这种情况;现在,该程序必须具有功能,具体取决于当前正在查看的页面。不太理想,我可以让用户点击感兴趣的页面并切换代码使用如下内容:

ActiveDocument.Bookmarks("\page").Range.Tables(2).Select

Word会在状态栏的左侧显示当前正在查看的页面的页码。示例:"第3页,共7页"。因此,如果用户在查看第3页时单击我的自定义按钮,我希望程序填充第3页上的表 - 而不是当前插入点的位置。

有没有办法在VBA中当前查看的页面上引用对象(例如表格)?

Some coders似乎非常坚定,这是无法实现的,但在使用插入点方法之前,我想与你们联系。

结束注释:每页没有一致数量的表,每个表的内容/布局可能会有所不同,并且表格不会越过任何页面边界。

感谢。

1 个答案:

答案 0 :(得分:0)

Sub test()
Dim r As Range
Dim t As Table
Set r = ActiveWindow.RangeFromPoint(740, 250)
Dim p As Long
p = r.Information(wdActiveEndPageNumber)
For Each t In ActiveDocument.Tables
    If t.Cell(1, 1).Range.Information(wdActiveEndPageNumber) = p Then

        t.Cell(1, 1).Shading.BackgroundPatternColorIndex = wdBrightGreen
        Exit For
    End If
Next t

End Sub

这将为屏幕上可见的第一个表格的第一个单元格着色,而不管光标位于何处。你可能不得不摆弄rangefrompoint的x,y坐标以适应你的屏幕分辨率