下面的代码显示了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
答案 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
现在,每次更改它都会进行计数并相应地更改颜色。