【发布时间】:2017-11-08 07:39:16
【问题描述】:
你的另一个 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
【问题讨论】:
-
查看上面的代码以获得所需的最终结果哈哈。抱歉,这里的代码看起来不太好。
-
当你发现一个复选框被选中后,你能不能不取消选中任何其他复选框?
-
基本上我希望 checkboxa=false (复选框 1、2 和 3 变灰) checkboxb=false (复选框 4、5 和 6 变灰)等。我希望 checkboxa+b 取消其他复选框,如果他们=真。
-
不清楚这里的问题是什么。 “用正确的术语”是什么意思?
-
别担心 -.-'' 代码现在可以工作,但 5 分钟前还不行。我讨厌编码。