【发布时间】:2020-07-04 20:31:17
【问题描述】:
我想为未知数量的复选框触发通用代码以更改行的格式样式。我有多行以复选框开头,我希望选中以将行设置为正常,并取消选中以将格式设置为标题 2。
Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
If ContentControl.Checked = True Then
Selection.Style = ActiveDocument.Styles("Normal")
ElseIf contextcontrol.Checked = False Then
Selection.Style = ActiveDocument.Styles("Heading 2")
End If
End Sub
选中一个框会将光标设置在该行上,所以我希望这个策略能够奏效。我从来没有在 Word 中使用过 vba,所以我认为我只是在触发代码方面做错了吗?
【问题讨论】:
-
当您离开一个内容控件并进入另一个内容控件时,代码是否运行?内容控件的反应方式与表单字段的反应方式相同:当您选中/取消选中时它们不会做出反应,当您离开(或进入)内容控件时它们会做出反应......(注意:它可能不会做您希望它做的事情,但首先我们需要知道代码正在触发)。
-
是的,你是对的。代码没有触发。我错过了一些我不知道的设置吗?
-
它驻留在哪个代码模块中?是在
ThisDocument还是其他地方?还有一个简单的检查方法:在顶部添加MsgBox "Test"行。如果您没有收到消息,您就知道什么都没有触发。并且一定要从内容控制到内容控制,而不是从控制到正文。 -
是的,我把它放在宏下。一旦我把它放在 ThisDocument 下,我就能够让它工作。谢谢!