繁体   English   中英

将Word文档属性中的字段插入带有其他文本的表格单元中

[英]Inserting a Field from Word Document Properties into table cell with additional text

我试图将在Word中的“文档属性”下创建的自定义字段(ProtocolNumber)插入周围带有其他文本的表格单元格中。 我不太确定在这种情况下如何使用Fields.Add函数。 很抱歉,问题是否太基本了,但是我是VBA的总黑客。

    NoOfCol = 5
    Set tblNew = ActiveDocument.Tables.Add(Selection.Range, 9, NoOfCol, 
                wdAutoFitWindow)
    With tblNew
      .PreferredWidthType = wdPreferredWidthPercent
      .PreferredWidth = 100
      .Columns(1).PreferredWidth = 100 * NoOfCol * 3 / (NoOfCol + 1)
    End With
    tblNew.Borders.InsideLineStyle = wdLineStyleSingle
    tblNew.Borders.OutsideLineStyle = wdLineStyleSingle
    tblNew.Cell(Row:=1, Column:=1).Merge _
    MergeTo:=tblNew.Cell(Row:=1, Column:=NoOfCol)
    tblNew.Cell(1, 1).Split NumColumns:=2
    tblNew.Cell(1, 1).Range.Text = "PROTOCOL: [ProtocolNumber]"  & vbCrLf & "DRUG/INDICATION:
    :
    :

这是您可能正在寻找的代码。

Dim Rng As Range
Dim PropName As String

Set Rng = tblNew,Cell(1, 1).Range
Rng.Collapse wdCollapseStart        ' insert field at start of cell
PropName = "Protocol number"        ' Custom document property by this name must exist
Rng.Fields.Add Range:=Rng, _
               Type:=wdFieldEmpty, _
               Text:="DOCPROPERTY """ & PropName & """", _
               PreserveFormatting:=True

请注意,执行任何水平合并后,Word将无法访问表中的列。 同样,当垂直合并任何单元格时,访问行的能力也会丢失。 简而言之,将表中的单元格合并不是一个好主意,如果您绝对必须这样做,则在访问完单元格后再进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM