多个复选框显示多种颜色VBA

时间:2018-02-06 20:13:02

标签: excel vba excel-vba

下面的代码显示了vba中的三个复选框,每个复选框(如果选中)都会突出显示工作簿中黄色的特定单元格背景。是否可以这样如果选中一个复选框,背景将为黄色,如果选中两个则为橙色,如果选中三个,则为红色。此外,如果没有选择,则不会填充背景。到目前为止我没有填充和黄色部分,但我无法弄清楚如何添加其他两种颜色。什么都有帮助,谢谢。

Sub CheckBox25_Click()
    With ActiveSheet.CheckBoxes("Check Box 25")
        If .Value = xlOn Then
            Worksheets("Sheet1").Range("C18").Interior.ColorIndex = 27
        Else: Worksheets("Sheet1").Range("C18").Interior.ColorIndex = 0
        End If
    End With
End Sub

Sub CheckBox26_Click()
    With ActiveSheet.CheckBoxes("Check Box 26")
        If .Value = xlOn Then
            Worksheets("Sheet1").Range("C18").Interior.ColorIndex = 27
        Else: Worksheets("Sheet1").Range("C18").Interior.ColorIndex = 0
        End If
    End With
End Sub

Sub CheckBox27_Click()
    With ActiveSheet.CheckBoxes("Check Box 27")
        If .Value = xlOn Then
            Worksheets("Sheet1").Range("C18").Interior.ColorIndex = 27
        Else: Worksheets("Sheet1").Range("C18").Interior.ColorIndex = 0
        End If
    End With
End Sub

1 个答案:

答案 0 :(得分:4)

将它放在与上述代码相同的模块中:

Sub colorCell()
Dim CB25 As Long
Dim CB26 As Long
Dim CB27 As Long

CB25 = (ActiveSheet.CheckBoxes("Check Box 25").Value = xlOn) * -1
CB26 = (ActiveSheet.CheckBoxes("Check Box 26").Value = xlOn) * -1
CB27 = (ActiveSheet.CheckBoxes("Check Box 27").Value = xlOn) * -1

With Worksheets("Sheet1").Range("C18").Interior
    Select Case CB25 + CB26 + CB27
        Case 1
            .ColorIndex = 27
        Case 2
            .ColorIndex = 27 'Change to your color
        Case 3
            .ColorIndex = 27 'Change to your color
        Case Else
            .ColorIndex = 0
    End Select
End With

End Sub

然后在每个事件中,改变就像这样:

Sub CheckBox25_Click()
    colorCell
End Sub

现在,每次更改它都会进行计数并相应地更改颜色。