简体   繁体   English

根据单元格值更改标签颜色

[英]Changing tab color based on cell value

I have an Excel workbook with multiple tabs, most contain project information with a specific cell for reporting the project status. 我有一个带有多个选项卡的Excel工作簿,其中大多数包含项目信息以及用于报告项目状态的特定单元格。 I have tried pulling together a macro to set the tab colors according to the project status (for easier identification). 我尝试将一个宏组合在一起以根据项目状态设置选项卡颜色(以便于识别)。 There are some tabs in the workbook that don't contain this project status cell which I've tried to exclude from the routine. 工作簿中有一些选项卡不包含此项目状态单元格,而我尝试从例程中排除这些选项卡。

Sub Set_tab_color()
    Dim WS As Worksheet
    For Each WS In ActiveWorkbook.Worksheets

    If Not WS.Name = "Cover" _
    And Not WS.Name = "Due Dill" _
    And Not WS.Name = "Comm '19" _
    And Not WS.Name = "Comm '18" _
    And Not WS.Name = "Comm '17" _
    And Not WS.Name = "Clarizen_PLI" _
    And Not WS.Name = "Clarizen_milestones" _
    And Not WS.Name = "_blank" Then
    End If

        Select Case WS.Range("B5").Value
        Case "C"
            WS.Tab.Color = RGB(0, 176, 240)
        Case "R/C"
            WS.Tab.Color = RGB(192, 0, 0)
        Case "R"
            WS.Tab.Color = RGB(255, 0, 0)
        Case "A"
            WS.Tab.Color = RGB(255, 192, 0)
        Case "G"
            WS.Tab.Color = RGB(0, 176, 80)
        Case Else
            WS.Tab.ColorIndex = xlColorIndexNone
        End Select
    Next WS
End Sub

Debugging highlights Case "C" get an error: 调试亮点案例“ C”得到一个错误:

Run-time error '13'. 运行时错误'13'。 Type mismatch. 类型不匹配。

Can anyone point me in the right direction? 谁能指出我正确的方向?

You could try: 您可以尝试:

Option Explicit

Sub Set_tab_color()

    Dim WS As Worksheet

    For Each WS In ActiveWorkbook.Worksheets

        With WS

            If Not .Name = "Cover" _
                And Not .Name = "Due Dill" _
                And Not .Name = "Comm '19" _
                And Not .Name = "Comm '18" _
                And Not .Name = "Comm '17" _
                And Not .Name = "Clarizen_PLI" _
                And Not .Name = "Clarizen_milestones" _
                And Not .Name = "_blank" Then

                Select Case .Range("B5").Value

                Case "C"
                    .Tab.Color = RGB(0, 176, 240)
                Case "R/C"
                    .Tab.Color = RGB(192, 0, 0)
                Case "R"
                    .Tab.Color = RGB(255, 0, 0)
                Case "A"
                    .Tab.Color = RGB(255, 192, 0)
                Case "G"
                    .Tab.Color = RGB(0, 176, 80)
                Case Else
                    .Tab.ColorIndex = xlColorIndexNone
                End Select

            End If

        End With

    Next WS

End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM