2017-06-07 36 views
0

另一個VBA困境給你。灰色複選框2和複選框3除非checkbox1 = true

我有checkbox1,checkbox2和checkbox3。 我想checkbox2和checkbox3被灰色如果checkbox1 =真 我已經使用了灰化的文本框

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

請參閱上述代碼以獲得期望的最終結果哈哈。對不起,代碼只是在這裏看起來不錯。 –

+0

您是否可以不勾選任何其他複選框,只要您找到一個複選框? – Hexie

+0

基本上我想要 checkboxa = false(複選框1,2和3變灰) checkboxb = false(複選框4,5和6變灰)等 我想checkboxa + b將其他複選框取消。 –

回答

1

這是你要求的嗎?當checkbox1爲真時,另一個將是灰色的...反之亦然...

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 
+0

那麼我上面發佈的代碼現在工作,但它沒有工作之前,我不明白爲什麼。感謝您發佈上面的代碼,但可以在某個地方使用! :) –