Изменение цвета вкладки в зависимости от значения ячейки - PullRequest
0 голосов
/ 27 июня 2019

У меня есть книга Excel с несколькими вкладками, большинство из которых содержат информацию о проекте с определенной ячейкой для отчета о состоянии проекта. Я попытался собрать макрос, чтобы установить цвета вкладок в соответствии со статусом проекта (для упрощения идентификации). В книге есть несколько вкладок, которые не содержат эту ячейку состояния проекта, которую я пытался исключить из подпрограммы.

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

Отладка основных моментов. Случай "C" выдает ошибку:

Ошибка времени выполнения «13». Несоответствие типов.

Кто-нибудь может указать мне правильное направление?

1 Ответ

1 голос
/ 27 июня 2019

Вы можете попробовать:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...