我正在創建一個Excel表格,該表格將顯示客戶已付款和何時遲到。在朋友的幫助下,我能夠想出一個公式,通過突出顯示單元格紅色,告訴我們客戶是否已經過期。在Excel中使用日期值以應用VBA條件格式化
據我所見,沒有辦法獲得條件格式來將空白單元格改爲「LATE」,所以建議我嘗試使用VBA。
我已經能夠改變顏色,並添加我需要的話,但如何讓VBA檢查日期,如條件格式公式?
這裏是公式,我在我的VBA片什麼:
式
=AND(ISBLANK(B1),NOT(ISBLANK(B$1)),NOT(ISBLANK($A1)),DATE(YEAR($A1),MONTH($A1),DAY(B$2))<TODAY(),B$2<TODAY())
VBA
Const FORMATTED_RANGE As String = "$B:$ZY"
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range(FORMATTED_RANGE)) Is Nothing Then Exit Sub
Dim cellColor As Long
Application.EnableEvents = False
Select Case Len(Target.Value)
Case ISBLANK
Target.Value = "LATE"
Target.Interior.Color = vbRed
Case Is <> 0
Target.Value = "PAID"
Target.Interior.ColorIndex = 10
End Select
Application.EnableEvents = True
End Sub
我使用了一些代碼,我在網上找到(感謝你是來自nullskull.com的Rolf Jaeger),所以我不是100%,如果我需要那裏的一切,但似乎工作正常,所以我暫時離開了,直到我學習了更多關於VBA的知識。
您的公式是否真的有效,因爲'= AND(ISBLANK(B1),NOT(ISBLANK(B $ 1)),...........'總會給出你'假'爲'B1'canno不能同時空白和非空白。你能否提供樣本數據? – Mrig
我不會推薦vba,你可以在你的條件格式中嘗試數字格式,比如我們使用美元符號($)的貨幣格式,所以不用美元符號,把'LATE'這個單詞...;) – Rosetta
我將不會推薦VBA,因爲使用VBA來做這種格式化將使得工作表爬行速度 – Rosetta