如何解决根据其他 2 种单元格颜色更改单元格颜色
我需要创建一个 VBA 公式,当我用其他颜色手动填充其他 2 个单元格时,它可以帮助我自动更改单元格的颜色。
这是一个例子:
由于手动填写单元格K和M,我需要单元格Q在第一行自动填充为绿色。
第二个也一样:如果我用黄色填充K+用绿色填充M,那么Q的结果一定是它被绿色填充。
这可能吗?如果你能给出前两个条件的例子,我自己构建以下条件就足够了。
这是我的代码:
Sub ratingColor()
If range("F13").Interior.Color = RGB(146,208,80) And range("H13").Interior.Color = RGB(146,80) Then
range("J13").Interior.Color = RGB(146,80)
ElseIf range("F13").Interior.Color = RGB(255,255,0) And range("H13").Interior.Color = RGB(146,80)
ElseIf range("F13").Interior.Color = RGB(255,192,80) Then
range("J13").Interior.Color = RGB(255,0)
ElseIf range("F13").Interior.Color = RGB(255,0) And range("H13").Interior.Color = RGB(255,0) Then
range("J13").Interior.Color = RGB(255,0)
ElseIf range("F13").Interior.Color = RGB(146,80) And range("H13").Interior.Color = RGB(255,0)
ElseIf range("F13").Interior.Color = RGB(255,0)
End If
End Sub
我已经创建了颜色公式并且它有效,但我现在需要的是循环部分,如果可能,每次更改颜色时自动应用它。
解决方法
这是基于您在帖子中给出的排列,将其放入您希望此代码运行的工作表模块中,请注意它实际上会在您在工作表上所做的每一次更改时触发,而不仅仅是在您改变颜色:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim colorGreen As Long
Dim colorYellow As Long
Dim colorOrange As Long
Dim colorRed As Long
Dim i As Long
Const rowStart As Long = 2 'first row,change to your purpose
Const rowEnd As Long = 20 'last row,change to your purpose
'Define color to variables
colorGreen = RGB(146,208,80)
colorYellow = RGB(255,255,0)
colorOrange = RGB(255,192,0)
colorRed = RGB(255,0)
With Sheet1 'change to correct worksheet reference
For i = rowStart To rowEnd
Select Case .Cells(i,6).Interior.color 'Check cell color in Column F
Case colorGreen
Select Case .Cells(i,8).Interior.color 'Check cell color in column H
Case colorGreen,colorYellow,colorOrange,colorRed: .Cells(i,10).Interior.color = .Cells(i,8).Interior.color
End Select
Case colorYellow
Select Case .Cells(i,colorOrange
.Cells(i,8).Interior.color
End Select
Case colorOrange
Select Case .Cells(i,8).Interior.color 'Check cell color in column H
Case colorGreen
.Cells(i,10).Interior.color = colorYellow
Case colorYellow
.Cells(i,10).Interior.color = colorOrange
Case colorOrange
.Cells(i,10).Interior.color = colorRed
End Select
End Select
Next i
End With
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。