在Excel中取消选中“复选框”

时间:2018-11-01 08:46:43

标签: excel vba

我有以下代码可以取消选中工作表中的所有复选框。

它不会更改框。我收到消息框,确认范围为绿色,因此循环应该开始。

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

1 个答案:

答案 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中的值是否为绿色。