我有一个Word模板,我在文档中间有一个复选框内容控件。单击此复选框后,它会使用VBA触发一些命令。但是,我之前在文档中也有纯文本内容控件和日期选择器内容控件,这有助于为用户填写模板。选中这些框后,我不断收到错误消息“运行时错误6290 - 此属性仅适用于复选框内容控件”。
我的问题 - 有没有办法忽略早期的内容控制框,只在按下复选框时运行代码?
我的代码目前看起来像这样:
Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
If (ContentControl.Title = "Checkbox1" And ContentControl.Checked = True) Then
*code in here*
End If
End Sub
所以你会认为只有在检查Checkbox1后才会触发代码...但是早期的text和date字段会给我一个错误代码。有谁知道发生了什么事?
答案 0 :(得分:0)
我不熟悉“内容控制”或Word VBA,但在Excel中,在编码.OnChange
事件时,确保传入Sub
的单元格是很重要的(你想要合作的人之一。我假设这里也是如此。
我的猜测是你的错误在
ContentControl.Checked = True
您If
语句的一部分,请尝试一下:
Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
If (ContentControl.Title = "Checkbox1") Then
If ContentControl.Checked = True Then
*code in here*
End IF
End If
End Sub
即,确保在测试之前查看复选框控件以查看是否已选中该复选框。
VBA 不执行条件快捷方式,因此它将评估AND
条件中的所有语句,即使第一个语句是False
。