清除特定列中的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控件做类似的事情。