我有以下代码可以取消选中工作表中的所有复选框。
它不会更改框。我收到消息框,确认范围为绿色,因此循环应该开始。
Sub Changeboxes()
'Dim cb As CheckBox'
If Sheet1.Range("a1").Value = "green" Then
MsgBox "The range is green.", vbOKOnly
For Each cb In Sheet1.CheckBoxes
cb.Value = True
Next cb
Else
MsgBox "The range is NOT green.", vbOKOnly
End If
MsgBox "Checked availability updated.", vbOKOnly
End Sub
答案 0 :(得分:2)
更改此行:将cb.Value = True
更改为cb.Value = False
,以取消选中复选框。
编辑
是的,如果复选框是activex对象,则以上代码将不起作用。而是使用以下代码:
Sub ChangeBoxes()
Dim obj As OLEObject
If Sheet1.Range("a1").Value = "green" Then
MsgBox "The range is green.", vbOKOnly
For Each obj In Sheet1.OLEObjects
obj.Object.Value = True
Next
MsgBox "Checked availability updated.", vbOKOnly
Else
MsgBox "The range is NOT green.", vbOKOnly
End If
End Sub
我也将最后一个消息框移到了if语句的第一部分,因为它弹出了A1中的值是否为绿色。