2

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

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

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

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

用通俗的话来说,我想要一些类似于“b = getIndexOfA(a)”的东西,这样我就可以执行以后的过程,例如:

for i=b to ActiveDocument.ContentControls.Count
    .....
next i

我在 Windows 10 上运行 Word 2016。

4

1 回答 1

2

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

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
于 2018-12-21T20:08:08.913 回答