根据ID或标题获取特定内容控件的索引

时间:2018-12-21 19:20:08

标签: vba ms-word word-contentcontrol

我想在给定特定标题的情况下通过VBA检索单词内容控件的索引,而不必遍历所有寻找标题的内容控件。

我知道我想要选择的内容控件的标题,因此我可以将特定内容控件的ID设置为一个变量,例如

.cs

现在,我想知道该项目的索引在文档中的其他内容控件(文件模板中的450多个内容控件)中是什么,以便我可以将内容控件索引称为变量。 / p>

用通俗易懂的话来说,我想要一些类似于“ b = getIndexOfA(a)”的东西,这样我就可以执行以下处理:

a = ActiveDocument.SelectContentControlsByTitle("123").Item(1).ID

我正在Windows 10上运行Word 2016。

1 个答案:

答案 0 :(得分:2)

以下方法仅适用于文档正文中属于文本一部分的对象(与浮动图像相对)。获取对象的Range,然后将其起点设置为文档的开头。计算范围内该类型的所有对象:

Dim lIndexCC as Long
Dim cc as Word.ContentControl
Dim rng as Word.Range

Set cc = ActiveDocument.SelectContentControlsByTitle("123").Item(1)
Set rng = cc.Range
rng.Start = ActiveDocument.Content.Start
lIndexCC = rng.ContentControls.Count
Debug.Print lIndexCC