除非checkbox1 = true,否则复选框为checkbox2和checkbox3

时间:2017-06-07 05:42:28

标签: vba checkbox word-vba

另一个VBA困境。

我有checkbox1,checkbox2和checkbox3。 如果checkbox1 = true,我希望checkbox2和checkbox3显示为灰色 我使用了类似于灰色文本框的代码

    Private Sub CheckBox1_Click()
    Dim en As Boolean
    en = Not CheckBox1.Value
    EnableControls Array(tbappgn, tbappfn), en

'utility sub: enable/disable controls
Private Sub EnableControls(cons, bEnable As Boolean)
    Dim con
    For Each con In cons
        With con
            .Enabled = bEnable
            .BackColor = IIf(bEnable, vbWhite, RGB(200, 200, 200))
        End With
    Next con
End Sub

在使用相同的代码处理其他复选框时遇到问题。

可以在上面的代码中添加复选框号,但我不希望该复选框成为灰色/非灰色其他复选框的触发器

类似的东西,但有正确的用语。

Private Sub CheckBox11_Click()
 Dim en As Boolean
   en = Not CheckBox11.Value
    EnableControls Array(checkbox12, checkbox13), en

    Private Sub CheckBox15_Click()
    Dim en As Boolean
    en = Not CheckBox15.Value
    EnableControls Array(checkbox16, checkbox17), en

Private Sub EnableControls(cons, bEnable As Boolean)
    Dim con
    For Each con In cons
        With con
            .Enabled = bEnable
            .BackColor = IIf(bEnable, vbWhite, RGB(200, 200, 200))
        End With
    Next con
End Sub

1 个答案:

答案 0 :(得分:1)

这是你要求的吗?当checkbox1为true时,另一个为灰色......反之亦然......

Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
        CheckBox2.Enabled = False
        CheckBox3.Enabled = False
    Else
        CheckBox2.Enabled = True
        CheckBox3.Enabled = True
    End If        
End Sub