我想在给定特定标题的情况下通过VBA检索单词内容控件的索引,而不必遍历所有寻找标题的内容控件。
我知道我想要选择的内容控件的标题,因此我可以将特定内容控件的ID设置为一个变量,例如
.cs
现在,我想知道该项目的索引在文档中的其他内容控件(文件模板中的450多个内容控件)中是什么,以便我可以将内容控件索引称为变量。 / p>
用通俗易懂的话来说,我想要一些类似于“ b = getIndexOfA(a)”的东西,这样我就可以执行以下处理:
a = ActiveDocument.SelectContentControlsByTitle("123").Item(1).ID
我正在Windows 10上运行Word 2016。
答案 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