我工作场所的一位经理已决定推出其中包含一千多个复选框的文档。
有一个按钮可以清除所有复选框,但是她写出的每一行都像这样:
Checkbox1.Value = False
Checkbox2.Value = False
...
Checkbox999.Value = False
Checkbox1000.Value = False
现在,作为IT服务台人员,我必须解决打开该文档时部门中每个人的延迟都超过60秒的问题。
我们俩都是傻瓜,我想她刚刚上线获取代码。
谁能分享一种快速清除所有复选框的快速方法?
可以加快速度吗?
谢谢。
PS我发现此代码可在Excel中使用,尽管我不知道如何使其适应Word ...
Sub ClearCheckBoxes()
Dim chkBox As Excel.CheckBox
Application.ScreenUpdating = False
For Each chkBox In ActiveSheet.CheckBoxes
chkBox.Value = xlOff
Next chkBox
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
您发布的Excel VBA代码可以相当容易地转换为Word VBA(如果您知道要用Google做什么)
通过使用宏记录器,我发现复选框在Word中称为内容控件。 (More is explained in the MSDN Docs here.)然后,您只需要内容控件类型“ wdContentControlCheckBox”即可获得所有复选框。
此代码应满足您的要求:
Sub ClearCheckBoxes()
Dim ctrl As Word.ContentControl
For Each ctrl In ActiveDocument.ContentControls
If ctrl.Type = wdContentControlCheckBox Then
ctrl.Checked = False
End If
Next ctrl
End Sub