另一个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
答案 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