我有一个用if函数控制的单元格(“L2”),根据其他字段中的用户输入确定“PASS”,“ERROR”或“CHECK BOX”。
我希望每当单元格L2的值发生变化时,相应标签的颜色会根据单元格内容自动更改。
我的代码目前看起来像这样,但不幸的是,它不起作用。你能看看并帮帮我吗?非常感谢你的帮助!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "L2" Then
Select Case Target.Value
Case "ERROR"
Me.Tab.ColorIndex = 3
Case "PASS"
Me.Tab.ColorIndex = 4
Case Else
Me.Tab.ColorIndex = xlColorIndexNone
End Select
End If
End Sub
编辑:
我注意到一些有趣的事情:由于单元格“L2”的显示值是通过其中包含的if函数控制的,因此vba似乎不会读取显示的值,而是来自单元格的if语句。我怎么能绕过这个?
感谢您的帮助。
答案 0 :(得分:2)
如果您希望标签颜色根据L2中的值进行更改,请使用以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range("$L$2").Value
Case "ERROR"
Me.Tab.ColorIndex = 3
Case "PASS"
Me.Tab.ColorIndex = 4
Case Else
Me.Tab.ColorIndex = xlColorIndexNone
End Select
End Sub