首页 > 解决方案 > 如何再次启用该复选框?

问题描述

我有 VBA 代码,它检查单元格的值,并应根据值启用/禁用复选框:

Private Sub CheckBox2_Click()
    If Range("A4").Value = "ZJ3" Then
        CheckBox2.Enabled = True
    ElseIf Range("A4").Value = "ZJ2" Then
        CheckBox2.Enabled = False
        CheckBox2.Value = False
    
    End If
End Sub

当我在单元格 A4 中选择 ZJ2 时,复选框会执行预期的操作,并禁用复选框的值和条目。

当我更改 ZJ3 的值时,它应该启用时仍然显示为灰色。

标签: excelvba

解决方案


Worksheet_Change使用事件来控制复选框是否启用可能会更好,如下所示:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Me.Range("A4")) Is Nothing Then Exit Sub
    
    Select Case Me.Range("A4").Value
        Case "ZJ3"
            Me.CheckBox2.Enabled = True
        Case "ZJ2"
            Me.CheckBox2.Enabled = False
            Me.CheckBox2.Value = False
    End Select
End Sub

推荐阅读