3

编写一个宏我发现我需要跳过表格内容并将光标放在之后,为此我使用代码作为

     Selection.Tables(cnt).Select
     Selection.Collapse WdCollapseDirection.wdCollapseEnd

在这里,cnt 是一个计数器值,每次找到表时都会增加,但如果在选择性页面中运行宏,那么我将如何知道我的光标所在的第 n 个表的数量。

4

2 回答 2

5

重要的!此解决方案允许您在文档中查找当前选择的表的数量。

将此功能添加到您的任何模块:

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)

结果,您将获得当前所在的表数。

于 2013-05-20T19:01:00.210 回答
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
于 2013-05-20T19:06:15.680 回答