go to the end of the current table

setup

i want to jump to the end of SoA tables with one click of the mouse. is there a way to do that?

solution

the plan

  1. if not in table, go forward to the nearest table.
  2. select the table. move right.

programming language & module(s)

  • VBA

file preps

make the doc to be processed the active document, i.e. the one where the cursor currently is in.

variables to customize

none.

the script

go2AftTbl
Sub go2AftTbl()
Dim safeCount As Long
System.Cursor = wdCursorWait
Application.ScreenUpdating = False
With Selection
If .Information(wdWithInTable) = False Then
go2NextTbl
End If
selTbl
.MoveRight wdCharacter, 1
End With
System.Cursor = wdCursorNormal
Application.ScreenUpdating = True
End Sub
Sub go2NextTbl()
Dim doc As Document
Dim selStart, selEnd, safeCount As Long
Application.ScreenUpdating = False
System.Cursor = wdCursorWait
Set doc = ActiveDocument
safeCount = 0
If doc.Tables.Count = 0 Then
MsgBox "there's NO table in this doc."
Else
With Selection
If selStart >= doc.Tables(doc.Tables.Count).Range.Start Then
MsgBox "there's no table after this one."
doc.Range(selStart, selEnd).Select
Exit Sub
Else
If .Information(wdWithInTable) = True Then
selTbl
.MoveRight wdCharacter, 1
End If
Do While safeCount < 5000 ' customize here if needed.
safeCount = safeCount + 1
If .Information(wdWithInTable) = False Then
.MoveDown wdParagraph, 1
Else
selTbl
.MoveLeft wdCharacter, 1
Exit Sub
End If
Loop
End If
End With
End If
System.Cursor = wdCursorNormal
Application.ScreenUpdating = True
End Sub
Sub selTbl()
Selection.Tables(1).Select
End Sub

output

the cursor's now at the end of the current table or the nearest table going forward.

note to self

none.

Some rights reserved
Except where otherwise noted, content on this page is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.