vba - 在 Word 中点击任何复选框时运行宏
问题描述
我想为未知数量的复选框触发通用代码以更改行的格式样式。我有多行以复选框开头,我希望选中以将行设置为正常,并取消选中以将格式设置为标题 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,所以我认为我做错了什么只是让代码触发?
解决方案
如果没有结束,实际上仍然需要在输入上使用它才能工作。代码触发的问题是因为我将其放在 Modules > Macros 下而不是文档中。正确代码:
Private Sub Document_ContentControlOnEnter(ByVal CCtrl As ContentControl)
With CCtrl
If .Type = wdContentControlCheckBox Then
If .Checked = True Then
.Range.Paragraphs.First.Style = wdStyleNormal
Else
.Range.Paragraphs.First.Style = wdStyleHeading2
End If
End If
End With
End Sub
推荐阅读
- python - Peewee 在 python 控制台中检索数据,但不在应用程序中
- php - 当没有为变化设置价格时,Woocommerce 变量产品上的显示按钮
- sql-server - 在 cakePHP 中调用视图
- r - 一个数除以自身不等于1?
- c# - 从 PowerShell 或 C# 使用 WMI - 如何获取远程主机时间,包括毫秒?
- python - 如何使用python删除隐藏文件夹中的文件?
- amazon-web-services - 为什么在aws linux下没有安装certbot-dns-cloudflare插件
- node.js - 节点 Mongoose 估计验证失败错误
- mongodb - 刷新火花流中的缓存值而不重新启动批处理
- java - 有没有办法将 compareTo 与 double 一起使用?爪哇