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,那么代码将检测到标签不存在,显示错误并停止 运行 代码。因此我的问题...
- 是否可以计算具有特定名称的标签的数量,如果计数为 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
我有一个扩展代码,使用类似于以下的命令填充标签:
ActiveDocument.SelectContentControlsByTitle("Tag1").Item(1).Range.Text = "New Item"
ActiveDocument.SelectContentControlsByTitle("Tag1").Item(2).Range.Text = "New Item"
但是,如果文档的用户从 word 文档中删除任何标签 1 或 2,那么代码将检测到标签不存在,显示错误并停止 运行 代码。因此我的问题...
- 是否可以计算具有特定名称的标签的数量,如果计数为 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