我在Word中设置了一些自定义按钮,用于填充模板上的表格。这是我用来遍历第二个表的单元格的示例:
ActiveDocument.Tables(2).Cell(i, j).Range
起初,这对我来说效果很好,因为每个模板中总有一页。这已不再是这种情况;现在,该程序必须具有功能,具体取决于当前正在查看的页面。不太理想,我可以让用户点击感兴趣的页面并切换代码使用如下内容:
ActiveDocument.Bookmarks("\page").Range.Tables(2).Select
Word会在状态栏的左侧显示当前正在查看的页面的页码。示例:"第3页,共7页"。因此,如果用户在查看第3页时单击我的自定义按钮,我希望程序填充第3页上的表 - 而不是当前插入点的位置。
有没有办法在VBA中当前查看的页面上引用对象(例如表格)?
Some coders似乎非常坚定,这是无法实现的,但在使用插入点方法之前,我想与你们联系。
结束注释:每页没有一致数量的表,每个表的内容/布局可能会有所不同,并且表格不会越过任何页面边界。
感谢。
答案 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坐标以适应你的屏幕分辨率