【发布时间】:2018-07-19 07:08:11
【问题描述】:
下面的代码有效,因此如果用户在分数部分输入一个介于 1-5 之间的数值,则特定列/列组将改变颜色。如果分数是 1、2、3、4 或 5 以外的任何值,则列上不会发生填充。
假设用户为问题 2 输入值 3,“二”、“三”和“五”列将以黄色突出显示。
现在,如果用户为问题一输入值 1,则“一”、“二”和“三”列将以红色突出显示。 “五”列仍将保持黄色,但“二”和“三”(因为分组与问题重叠)变为红色,因为这是最近的事件。
我似乎无法找到一种方法来使分数数字确定当前突出显示的单元格是否更改为不同的颜色。我想要这样,如果用户为问题 2 输入值 3,则“二”、“三”和“五”列将以黄色突出显示,但如果他们随后为问题一输入值 1 ,“一”列将以红色突出显示,“二”和“三”应保持黄色,因为分数 3 高于 1。
问题一按列分组:一、二、三
问题二按列分组:二、三、五
问题三按列分组:三、四
问题四按列分组:三、四
问题五按列分组:一、二、三
得分 1 显示:红色
得分 2 显示:橙色
3 分显示:黄色
得分 4 显示:浅绿色
5分显示:深绿色
Private Sub CheckBox1_Click()
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D19")) Is Nothing Then
Select Case Range("D19").Value
Case 1
Range("L3:N28").Interior.ColorIndex = 3
Case 2
Range("L3:N28").Interior.ColorIndex = 45
Case 3
Range("L3:N28").Interior.ColorIndex = 6
Case 4
Range("L3:N28").Interior.ColorIndex = 4
Case 5
Range("L3:N28").Interior.ColorIndex = 50
Case Else
Range("L3:N28").Interior.ColorIndex = 0
End Select
End If
If Not Intersect(Target, Range("D20")) Is Nothing Then
Select Case Range("D20").Value
Case 1
Range("M3:N28,P3:P28").Interior.ColorIndex = 3
Case 2
Range("M3:N28,P3:P28").Interior.ColorIndex = 45
Case 3
Range("M3:N28,P3:P28").Interior.ColorIndex = 6
Case 4
Range("M3:N28,P3:P28").Interior.ColorIndex = 4
Case 5
Range("M3:N28,P3:P28").Interior.ColorIndex = 50
Case Else
Range("M3:N28,P3:P28").Interior.ColorIndex = 0
End Select
End If
If Not Intersect(Target, Range("D21")) Is Nothing Then
Select Case Range("D21").Value
Case 1
Range("N3:O28").Interior.ColorIndex = 3
Case 2
Range("N3:O28").Interior.ColorIndex = 45
Case 3
Range("N3:O28").Interior.ColorIndex = 6
Case 4
Range("N3:O28").Interior.ColorIndex = 4
Case 5
Range("N3:O28").Interior.ColorIndex = 50
Case Else
Range("N3:O28").Interior.ColorIndex = 0
End Select
End If
If Not Intersect(Target, Range("D22")) Is Nothing Then
Select Case Range("D22").Value
Case 1
Range("N3:O28").Interior.ColorIndex = 3
Case 2
Range("N3:O28").Interior.ColorIndex = 45
Case 3
Range("N3:O28").Interior.ColorIndex = 6
Case 4
Range("N3:O28").Interior.ColorIndex = 4
Case 5
Range("N3:O28").Interior.ColorIndex = 50
Case Else
Range("N3:O28").Interior.ColorIndex = 0
End Select
End If
If Not Intersect(Target, Range("D23")) Is Nothing Then
Select Case Range("D23").Value
Case 1
Range("L3:N28").Interior.ColorIndex = 3
Case 2
Range("L3:N28").Interior.ColorIndex = 45
Case 3
Range("L3:N28").Interior.ColorIndex = 6
Case 4
Range("L3:N28").Interior.ColorIndex = 4
Case 5
Range("L3:N28").Interior.ColorIndex = 50
Case Else
Range("L3:N28").Interior.ColorIndex = 0
End Select
End If
End Sub
我希望我能正确地解释自己。有什么帮助,谢谢。
【问题讨论】:
-
你刚刚转发了这个问题吗?我感觉我之前看到过这个问题!? >,
-
@CallumDA - 在这里? - stackoverflow.com/questions/48688761/…
-
@CallumDA 也无法弄清楚如何使用条件格式来做到这一点(在使用 excel 或 vba 时不是很有经验)。
标签: vba excel excel-formula conditional-formatting