编写一个宏我发现我需要跳过表格内容并将光标放在之后,为此我使用代码作为
Selection.Tables(cnt).Select
Selection.Collapse WdCollapseDirection.wdCollapseEnd
在这里,cnt 是一个计数器值,每次找到表时都会增加,但如果在选择性页面中运行宏,那么我将如何知道我的光标所在的第 n 个表的数量。
重要的!此解决方案允许您在文档中查找当前选择的表的数量。
将此功能添加到您的任何模块:
Function WhichTableNo(RNG As Range)
If RNG.Tables.Count > 0 Then
Dim DOC As Document
Set DOC = RNG.Parent
Dim rngTMP As Range
Set rngTMP = DOC.Range(0, RNG.Tables(1).Range.End)
WhichTableNo = rngTMP.Tables.Count
Else
WhichTableNo = "Not in the table"
End If
End Function
并检查表号,您可以这样称呼它:
debug.Print WhichTableNo(Selection.Range)
结果,您将获得当前所在的表数。
光标所在的表始终为Selection.Tables(1)
。
If Selection.Tables.Count > 0 Then
Dim r As Range
Set r = Selection.Tables(1).Range
r.Collapse wdCollapseEnd
r.Select
End If
如果是嵌套表,您可能还需要检查Selection.Tables.NestingLevel
. 以下将退出任意数量的嵌套表,将光标放在最外层表之后:
If Selection.Tables.Count > 0 Then
Dim r As Range, i As Long
Set r = Selection.Range
For i = 1 To r.Tables.NestingLevel
Set r = r.Tables(1).Range
r.Collapse wdCollapseEnd
Next
r.Select
End If