编写宏我发现我需要跳过表格内容并在此之后将光标放在右边,为此我使用的代码为
Selection.Tables(cnt).Select
Selection.Collapse WdCollapseDirection.wdCollapseEnd
这里,cnt是一个计数器值,每次找到一个表时会增加,但如果在选择页面中运行宏,那我怎么知道我的光标所在的第n个表的数量。
答案 0 :(得分:4)
重要!此解决方案允许您查找文档中当前选定的表格的数量。
将此功能添加到您的任何模块:
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)
因此,您将获得当前所在的桌子数量。
答案 1 :(得分:4)
光标所在的表格始终为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