Я бы пошел следующим образом:
Dim BMRange As Range
Dim tbl1 As Table
With ActiveDocument
Set tbl1 = .Tables(1)
Set BMRange = .Range(Start:=tbl1.Cell(2, 2).Range.Start, _
End:=tbl1.Cell(2, 2).Range.End)
BMRange.MoveEnd Unit:=wdCharacter, count:=-1
.Bookmarks.Add name:="ExampleBookmark", Range:=BMRange
End With
With tbl1.Cell(2, 3).Range
.Collapse (wdCollapseStart)
.InsertCrossReference ReferenceType:="Bookmark", ReferenceKind:= _
wdContentText, ReferenceItem:="ExampleBookmark", InsertAsHyperlink:=True, _
IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
End With
или, с другим стилистическим выбором:
Dim BMRange As Range
With ActiveDocument
With .Tables(1)
Set BMRange = .Parent.Range(Start:=.Cell(2, 2).Range.Start, _
End:=.Cell(2, 2).Range.End)
End With
BMRange.MoveEnd Unit:=wdCharacter, count:=-1
.Bookmarks.Add name:="ExampleBookmark", Range:=BMRange
With .Tables(1).Cell(2, 3).Range
.Collapse (wdCollapseStart)
.InsertCrossReference ReferenceType:="Bookmark", ReferenceKind:= _
wdContentText, ReferenceItem:="ExampleBookmark", InsertAsHyperlink:=True, _
IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
End With
End With