内容控件如何在重复部分内容控件中编制索引?
How Content Controls are indexed in repeating Section Content Control?
我有两个段落的文档:第一个是纯文本抄送,第二个是重复部分抄送,里面有一个纯文本抄送。
我正在尝试将 CC 重复部分中的所有信息移动到第一段 CC 中。到目前为止,我已经找到了这段代码:
Sub first_paragraph()
Dim x As Integer
Dim xNames As String
Dim xEntry As String
xNames = ""
With ActiveDocument.SelectContentControlsByTag("VP_pav")
For x = 1 To .Count
With .Item(x)
If .Tag = "VP_pav" Then
xEntry = ActiveDocument.SelectContentControlsByTag("VP_pav").Item(x).Range.Text
' "if" for removing comma before first entry
If xNames = "" Then
xNames = xEntry + xNames
Else
xNames = xEntry + ", " + xNames
End If
End If
End With
Next x
End With
ActiveDocument.SelectContentControlsByTag("pirm_pas").Item(1).Range.Text = xNames
End Sub
CC 在重复部分 CC(然后添加新部分)中生成的问题似乎获得随机项目编号(我认为第一个带有标签 "example" 的 CC 将获得项目编号 1,第二个 CC 具有相同的标签get item number 2 等等,但好像不是这样的)。
由于新生成的 CC 获得随机项目编号,因此第一段 CC 中的值是乱序的。
是否可以让新生成的CC得到序号?如果它们不是连续的,他们如何获得项目编号?应该采取一些不同的方法吗?
我正在添加图片来说明我的情况:
P.S。我正在删除我最近发布的关于在这种情况下正确的变量顺序的问题,因为我确定它(可能)不是问题所在。
根据显示的代码,没有任何内容告诉 Word 以任何顺序读取内容控件。在这种情况下,更好的方法是循环重复部分内容控件中的内容控件。
以下示例假定 RepSec
已分配给重复节内容控件的 Title
:
Sub first_paragraph()
Dim xNames As String, xEntry as String
Dim ccRepSec as Word.ContentControl
Dim cc as Word.ContentControl
xNames = ""
Set ccRepSec = ActiveDocument.SelectContentControlsByTitle("RepSec").Item(1)
For Each cc in ccRepSec.Range.ContentControls
If .Tag = "VP_pav" Then
xEntry = cc.Range.Text
If xNames = "" Then
xNames = xEntry & xNames
Else
xNames = xEntry & ", " & xNames
End If
End If
Next cc
ActiveDocument.SelectContentControlsByTag("pirm_pas").Item(1).Range.Text = xNames
End Sub
我有两个段落的文档:第一个是纯文本抄送,第二个是重复部分抄送,里面有一个纯文本抄送。
我正在尝试将 CC 重复部分中的所有信息移动到第一段 CC 中。到目前为止,我已经找到了这段代码:
Sub first_paragraph()
Dim x As Integer
Dim xNames As String
Dim xEntry As String
xNames = ""
With ActiveDocument.SelectContentControlsByTag("VP_pav")
For x = 1 To .Count
With .Item(x)
If .Tag = "VP_pav" Then
xEntry = ActiveDocument.SelectContentControlsByTag("VP_pav").Item(x).Range.Text
' "if" for removing comma before first entry
If xNames = "" Then
xNames = xEntry + xNames
Else
xNames = xEntry + ", " + xNames
End If
End If
End With
Next x
End With
ActiveDocument.SelectContentControlsByTag("pirm_pas").Item(1).Range.Text = xNames
End Sub
CC 在重复部分 CC(然后添加新部分)中生成的问题似乎获得随机项目编号(我认为第一个带有标签 "example" 的 CC 将获得项目编号 1,第二个 CC 具有相同的标签get item number 2 等等,但好像不是这样的)。
由于新生成的 CC 获得随机项目编号,因此第一段 CC 中的值是乱序的。
是否可以让新生成的CC得到序号?如果它们不是连续的,他们如何获得项目编号?应该采取一些不同的方法吗?
我正在添加图片来说明我的情况:
P.S。我正在删除我最近发布的关于在这种情况下正确的变量顺序的问题,因为我确定它(可能)不是问题所在。
根据显示的代码,没有任何内容告诉 Word 以任何顺序读取内容控件。在这种情况下,更好的方法是循环重复部分内容控件中的内容控件。
以下示例假定 RepSec
已分配给重复节内容控件的 Title
:
Sub first_paragraph()
Dim xNames As String, xEntry as String
Dim ccRepSec as Word.ContentControl
Dim cc as Word.ContentControl
xNames = ""
Set ccRepSec = ActiveDocument.SelectContentControlsByTitle("RepSec").Item(1)
For Each cc in ccRepSec.Range.ContentControls
If .Tag = "VP_pav" Then
xEntry = cc.Range.Text
If xNames = "" Then
xNames = xEntry & xNames
Else
xNames = xEntry & ", " & xNames
End If
End If
Next cc
ActiveDocument.SelectContentControlsByTag("pirm_pas").Item(1).Range.Text = xNames
End Sub