Excel VBA:自动调整选项卡颜色

时间:2013-05-30 11:37:10

标签: excel vba excel-vba

我有一个用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语句。我怎么能绕过这个?

感谢您的帮助。

1 个答案:

答案 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