簡體   English   中英

將字表單元格中的值設置為范圍

[英]Set value within a word table cell as range

我正在編寫代碼以將單詞表單元格的數值設置為書簽(並在文檔的后面部分交叉引用該書簽)。 我遇到的問題是我只能將單元格本身設置為范圍,這在我交叉引用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:=" "

我將按照以下步驟進行:

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

當您對表格的任何部分添加書簽時,可以使用沿着以下行編碼的公式字段,從文檔的其他位置引用該表格中任何單元格中的數值:

{= 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 (在Mac上為Cmd - F9 )在文檔本身中創建上述示例的字段大括號對(即'{}'); 您不能簡單地鍵入它們或從此消息中復制並粘貼它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM