1

我有一个由 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 语句。我怎样才能解决这个问题?

谢谢你的帮助。

4

1 回答 1

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
于 2013-05-30T13:17:28.527 回答