Excel VBA:自动调整标签颜色

我有一个由if函数控制的单元(“L2”),根据用户在其他字段中的input来确定“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语句。 我怎样才能解决这个问题?

谢谢你的帮助。

如果您希望标签颜色根据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