VBA 在 Word 中避免标记不存在时的代码

VBA in Word to avoid code if Tag does not exist

我有一个扩展代码,使用类似于以下的命令填充标签:

ActiveDocument.SelectContentControlsByTitle("Tag1").Item(1).Range.Text = "New Item"
ActiveDocument.SelectContentControlsByTitle("Tag1").Item(2).Range.Text = "New Item"

但是,如果文档的用户从 word 文档中删除任何标签 1 或 2,那么代码将检测到标签不存在,显示错误并停止 运行 代码。因此我的问题...

  1. 是否可以计算具有特定名称的标签的数量,如果计数为 returns 0,代码将跳过查找?我想如果我可以按标签名称计数,我将能够解决这个问题,但还没有弄清楚!

只要查找 SelectContentControlsByTitle 的文档就可以让您找到答案。

Returns a ContentControls collection that represents all the content controls in a document with the title specified in the Title parameter. Read-only.

由于 collection 有一个 Count 属性,您可以使用它来确定 collection 中有多少项,或者您可以遍历 collection 的成员collection 而不是单独给他们写信。

如果不存在具有该标题的控件,则以下操作不会引发错误:

Dim cc As ContentControl

For Each cc In ActiveDocument.SelectContentControlsByTitle("Tag1")
    cc.Range.Text = "New Item"
Next cc