清除特定列中的checkbox
我正在尝试创build一个macros来清除两个特定列中的所有checkbox(每列大约有40个checkbox)。 这是我有:
Worksheets("Roster").Column(5).CheckBoxes.Value = False Worksheets("Roster").Column(7).CheckBoxes.Value = False
我也试过这个:
ActiveSheet.Column(5).CheckBoxes.Value = False ActiveSheet.Column(7).CheckBoxes.Value = False
checkbox不是列的成员。
如果它们是表单控件,那么它们属于工作表的CheckBoxes
集合。 如果ActiveX控件属于表单的OLEObjects
集合,但也可以通过表单的Shapes
集合进行访问。
无论哪种情况,您都可以通过索引号(CheckBoxes(1),OLEObjects(1))或其名称来引用它们。
如果他们是表单控件,那么你可以find那些链接(LinkedCell)使用此代码的特定列:
Dim ckb As Object Dim sLinked As String For Each ckb In ActiveSheet.CheckBoxes sLinked = ckb.LinkedCell If sLinked <> "" Then '.. there is a LinkedCell If Range(sLinked).Column = 5 Or Range(sLinked).Column = 7 Then Debug.Print "found one.." Range(sLinked).Value = False End If End If Next ckb
请注意,这会更改链接单元格中的值,而不是控件本身。
应该可以用ActiveX控件做类似的事情。