是否可以在VBA中添加“重复节内容控制”部分?

时间:2018-12-21 10:37:52

标签: excel vba ms-word word-contentcontrol

我用重复节内容控制(RSCC)创建了Word模板,其中包含其他 Content Controls 。我也有excel工作簿,其中的信息应转到提到的Word模板。我要尝试做的事情是创建一个宏,该宏将用Excel工作簿中的选定行(每一行到新的RSCC部分)中的信息填充Word模板。

我有一个很好的主意,除了一件事-我无法弄清楚如何编写宏,这会在重复节内容控制中添加另一节。

我正在添加说明我正在尝试做的事情:

example

问题是,我找不到使用VBA执行相同操作的代码。我已经尝试了录制过程,但是录制的宏为空(?!)。

寻找答案时,我在StackOverflow中找到了this thread,它会问类似的问题,但我的理解或多或少都没有答案。将这个线程中的注释转发到Microsoft forum中的旧线程,但是我没有找到解决该问题的方法(或者至少我不清楚我应该如何处理)。

由于一个线程将近5年,另一个线程已2年。我的问题是,是否甚至可以通过VBA向RSCC添加其他部分?也许有人在过去一年左右的时间内找到了一种方法?

1 个答案:

答案 0 :(得分:1)

Word对象模型具有用于重复节内容控件的集合和对象:RepeatingSectionItemsRepeatingSectionItem。后者有两种插入方法,可以在RepeatingSectionItem之前或之后插入。

这里有一个示例,展示了如何在文档中引用重复节内容控件,获取第一项或最后一项并在其后插入新项。

Sub AddRepeatingSection()
    Dim cc As Word.ContentControl
    Dim repCC As Word.RepeatingSectionItem

    Set cc = ActiveDocument.SelectContentControlsByTitle("RepCC").Item(1)
    Set repCC = cc.RepeatingSectionItems.Item(1)
    'Or to get the last one:
    'Set repCC = cc.RepeatingSectionItems.Item(cc.RepeatingSectionItems.Count)
    repCC.InsertItemAfter        
End Sub