我正在编写代码来将单词表格单元格的数值设置为书签(以及稍后在文档中书签的交叉引用)。我遇到的问题是我只能将单元格本身设置为范围,当我交叉引用boorkmark时会导致格式问题。我宁愿为数值本身添加书签,因为这不会导致格式化问题。
Dim BMRange As Word.Range
Set BMRange = Activedocument.Tables(1).Cell(2, 2).range
Activedocument.Bookmarks.Add Name:="ExampleBookmark", Range:=BMRange
Set BMRange = Activedocument.Tables(1).Cell(2, 3).Range
BMRange .Collapse wdCollapseStart
BMRange.InsertCrossReference ReferenceType:="Bookmark", ReferenceKind:= _
wdContentText, ReferenceItem:="ExampleBookmark", InsertAsHyperlink:=True, _
IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
答案 0 :(得分:0)
我要点如下:
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
答案 1 :(得分:0)
当您为表格的任何部分添加书签时,您可以使用以下行编码的公式字段从文档中的其他位置引用该表格中任何单元格中的数值:
{= Sum(Tbl B2)}
其中' Tbl'是书签名称和' B2'是细胞参考。
至于你在做什么,你甚至不需要书签,因为它在同一张桌子里。只需使用编码为:
的公式字段{= B2}
您可以通过编程方式执行此操作:
Dim Rng As Range
With ActiveDocument
Set Rng = .Tables(1).Cell(2, 3).Range
Rng.End = Rng.End - 1
.Fields.Add Range:=Rng, Type:=wdFieldEmpty, Text:="=B2", PreserveFormatting:=False
End With
注意:如果您手动创建字段,则必须在文档中创建上述示例的字段大括号(即' {}')本身通过 Ctrl - F9 ( Cmd - F9 在Mac上);你不能简单地输入或复制&从这条消息中粘贴它们。