简体   繁体   English

VBA 将多个内容控件添加到 Word 中的单个表格单元格

[英]VBA to Add Multiple Content Controls to a Single Table Cell in Word

I need to add multiple content controls and additional text into a single table cell in word using VBA.我需要使用 VBA 将多个内容控件和附加文本添加到 word 中的单个表格单元格中。 Here is an example of what I need:这是我需要的一个例子:

<CC1>Moby Dick</CC1> has been read by <CC2>2</CC2> people who have given it an average score of <CC3>3</CC3> out of 5 <CC1>Moby Dick</CC1> 已被 <CC2>2</CC2> 人阅读,平均得分为 <CC3>3</CC3>(满分 5 分)

I know I can add a single content controls with the following syntax:我知道我可以使用以下语法添加单个内容控件:

With rng.ContentControls.Add(wdContentControlRichText)
 .title = "Book Name"
 .Tag = "title"
End With

If my range is set to the cell, how would I make the following pseudo code work:如果我的范围设置为单元格,我将如何使以下伪代码工作:

Set rng = objDoc.Tables(1).Cell(2, 1).Range

With rng.ContentControls.Add(wdContentControlRichText)
 .title = "Book Name"
 .Tag = "title"
End With

" has been read by "

With rng.ContentControls.Add(wdContentControlRichText)
 .title = "People Count"
 .Tag = "count"
End With

" people who have given it an average score of "

With rng.ContentControls.Add(wdContentControlRichText)
 .title = "Score"
 .Tag = "score"
End With

" out of 5"

Here is some actual code.这是一些实际的代码。 It is putting the third insertafter and content control between the Second insertafter and the second content control它将第三个 insertafter 和内容控件放在第二个 insertafter 和第二个内容控件之间

With rng.ContentControls.Add(wdContentControlRichText)
    .title = "Asset ID"
    .Tag = "asset_id"
End With
rng.InsertAfter " | Rev. "
rng.Collapse Direction:=wdCollapseEnd
rng.Move wdCharacter, -1
With rng.ContentControls.Add(wdContentControlRichText)
    .title = "Revison Number"
    .Tag = "revision_num"
End With
rng.InsertAfter " | Effective Date: "
rng.Collapse Direction:=wdCollapseEnd
rng.Move wdCharacter, -1
With rng.ContentControls.Add(wdContentControlRichText)
    .title = "Effective Date"
    .Tag = "effective_date"
End With

在此处输入图像描述

Try this:尝试这个:

   Set rng = objDoc.Tables(1).Cell(2, 1).Range
   rng.Collapse wdCollapseStart
   With rng.ContentControls.Add(wdContentControlRichText)
      .Title = "Effective Date"
      .Tag = "effective_date"
      .SetPlaceholderText Text:="Effective date"
   End With
   rng.Text = " | Effective Date: "
   rng.Collapse wdCollapseStart
   With rng.ContentControls.Add(wdContentControlRichText)
      .Title = "Revison Number"
      .Tag = "revision_num"
      .SetPlaceholderText Text:="Rev Num"
   End With
   rng.Text = " | Rev. "
   rng.Collapse wdCollapseStart
   With rng.ContentControls.Add(wdContentControlRichText)
      .Title = "Asset ID"
      .Tag = "asset_id"
      .SetPlaceholderText Text:="Asset ID"
   End With

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

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