2017-04-27 104 views
0

嘿,所以繼承人我所做的。我正在跟蹤系統中的到期日期,它們是電子表格的一部分。如果60天以後出現紅色(如果表格內有條件格式),我就會將它標記爲黃色。然後我設置了一個計數 = COUNTIF(I3:I02,「> =」& TODAY()+ 60)After Today = COUNTIF(I3:I102,「< =」 & TODAY())逾期Visual Basic Excel條件公式

我用這些計數預示着什麼是否標記或不然後將它們推入以下公式。我現在想要做的是實際上讓工作表的選項卡改變顏色,根據工作表中是否到期或過期來決定是否到期。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$B$1" Then 
     Select Case Target.Value 
     Case Is > 0 
      Me.Tab.Color = vbRed 
     End Select 
    ElseIf Target.Address = "$B$2" Then 
     Select Case Target.Value 
     Case Is > 0 
      Me.Tab.Color = vbYellow 
     End Select 
    Else 
     Me.Tab.Color = vbGreen 
    End If 
End Sub 

只要改變標籤的顏色就可以工作,但如果在事實後更改B2的值,它將刪除紅色標誌?即一個壓倒另一個。如果有紅色,我需要它保持紅色。基本上我希望它停止,如果if語句是真的,如果它不繼續檢查b2..etc的值。

回答

0

你似乎想要做的是檢查的B1和B2的值如果任B1或B2被改變:

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Range("B1").Value > 0 Then 
     Me.Tab.Color = vbRed 
    ElseIf Range("B2").Value > 0 Then 
     Me.Tab.Color = vbYellow 
    Else 
     Me.Tab.Color = vbGreen 
    End If 
End Sub 

根據您的問題,這聽起來像B1和B2包含公式。因此,他們在計算不同的數字時不會觸發Worksheet_Change事件。因此,我沒有包含任何關於Target位置的測試 - 代碼將在工作表上的任何任何單元被手動更改時執行。