2013-05-30 4 views
1

У меня есть ячейка («L2»), которая управляется с помощью функции if, чтобы определить «PASS», «ERROR» или «CHECK BOX» на основе ввода пользователем в других полях.Excel VBA: автоматически настраивает цвет вклада

Я хочу, чтобы цвет соответствующей вкладки менялся автоматически в зависимости от содержимого ячейки всякий раз, когда изменяется значение ячейки 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 

EDIT:

я заметил кое-что интересное: как отображаемое значение ячейки «L2» управляется с помощью, если функция, которая содержится в ней, УВА не отображается для чтения отображаемое значение, а скорее оператор if из ячейки. Как я могу обойти это?

Благодарим за помощь.

+0

Где происходит ошибка и какое сообщение вы получите? –

+0

Ошибка не возникает, но изменения не происходит. – jcv

+0

Ваш код в порядке, делая то, что вам нужно. Вы должны быть уверены, что вы проверите его на том же листе, на котором принадлежит ваш код (модуль листа в VBA/IDE). –

ответ

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 
+0

Это работает, потрясающе. Большое спасибо :) – jcv

+0

@jcv youre welcome –

+0

Mehow, вы не против быстро взглянуть на это? В инструкции if есть ошибка, и я не уверен, почему. Должен быть прямой: Private Sub Worksheet_Change (ByVal Target As Range) Если Range ("L5") Значение = "Доводы: 23/23". Затем Select Case Range ("$ L $ 2") Значение . Случай "ERROR" Me.Tab.ColorIndex = 3 Case "PASS" Me.Tab.ColorIndex = 4 Else Me.Tab.ColorIndex = xlColorIndexNone End If End Select End Sub } – jcv

Смежные вопросы