2013-05-30 226 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 

編輯:

我注意到一些有趣的事情:由於細胞「L2」的顯示值經由被包含在其內的,如果功能的控制,VBA不會出現讀取顯示值,而是來自單元格的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 – 2013-05-30 13:49:09

+0

不知何故,你介意快速瀏覽一下嗎? if語句有錯誤,我不知道爲什麼。應該是直截了當:私人小組Worksheet_Change(BYVAL目標作爲範圍) 如果範圍( 「L5」)值= 「意見書:23/23」,然後 選擇受案範圍( 「$ L $ 2」)值 。情況下 「ERROR」 Me.Tab.ColorIndex = 3 情況下 「PASS」 Me.Tab.ColorIndex = 4 否則 Me.Tab.ColorIndex = xlColorIndexNone 結束如果 結束選擇 結束子} – jcv