我有下表。
每个单元格代表一个单独的纯文本上下文控件。然后将整行包装在重复部分上下文控制(" RSCC")中,该控制被标记为" ENTRY"。如您所知,我可以添加如下行:
Sub MACRO1()
'
' MACRO1 Macro
'
Dim anchor_cc As ContentControl
Set anchor_cc = ActiveDocument.SelectContentControlsByTag("ENTRY").Item(1)
' Add one more row
total = 1
For counter = 1 To total
With anchor_cc
.AllowInsertDeleteSection = True
.RepeatingSectionItems(1).InsertItemAfter
End With
Next counter
End Sub
我还可以解决这样的 INDIVIDUAL RSCC,它会在对话框中输出 整行 的文本内容:
Sub MACRO2()
Dim anchor_cc As ContentControl
Set anchor_cc = ActiveDocument.SelectContentControlsByTag("ENTRY").Item(1)
With anchor_cc
For counter = 1 To .RepeatingSectionItems.Count
MsgBox (.RepeatingSectionItems(counter).Range)
Next counter
End With
End Sub
如何处理该RSCC中的单个细胞?例如,让我们说我想要解决第一行中的第一个单元格。解决第一行很容易。我可以将.RepeatingSectionItems
索引设置为1,即
.RepeatingSectionItems(1)
如何访问该行中的第一个单元格?还是 nth 单元格?请记住,单元格是单独的纯文本上下文控件。我根本不知道这是否会改变答案。
答案 0 :(得分:0)
我无法使用我认为自带Word 2013或2016的.RepeatingSectionItems
属性(此时此刻我在MS Word 2010面前)。
尝试使用此逻辑来引用第一行(您可以使用您的技术),然后在此行中简单地引用所需的单元格:
Dim ccEntry As ContentControl
Set ccEntry = ActiveDocument.SelectContentControlsByTitle("ENTRY")(1)
'to get row...
Dim tblRow As Row
Set tblRow = ccEntry.Range.Tables(1).Rows(ccEntry.Range.Information(wdEndOfRangeRowNumber))
'get first cell
Dim tblCell As Cell
Set tblCell = tblRow.Cells(1)
Debug.Print tblCell.Range.Text
答案 1 :(得分:0)
如果行中的每个单元格都是ContentControl对象,则使用此代码(例如,对于第一行中的单元格,第二列):
RepeatingSectionItems(1).Range.ContentControls(2).Range.Text