我想在VBA中使用基於特定條件的高亮顯示功能。我可以很容易地通過條件格式來做到這一點,但我注意到,如果用戶剪切/粘貼(非特殊)/刪除行/等。然後修改條件格式範圍。我希望條件格式範圍保持固定而不是映射到實際單元格。如果有人知道如何做到這一點,或保護條件格式,但仍然允許數據操作,那麼這個代碼將是不必要的。根據日期和其他條件突出顯示單元格
我發現了兩種不同的代碼,我一直在嘗試,但由於我是VBA新手,我並不擅長並遇到問題。我不知道如何使用Isblank或Isempty功能。
我需要突出顯示從現在起30天之前(包括通過日期)的日期爲紅色的日期。我需要突出顯示從現在開始的60天之前的日期,而以黃色顯示超過30天的日期。沒有數據和細胞超過60天的細胞必須保持不被強調。
任何幫助,非常感謝!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer
If Not Intersect(Target, Range("C3:T65")) Is Nothing Then
Select Case Target
Case Is <= Date + 60
icolor = 6
Case Is <= Date + 30
icolor = 3
Case IsEmpty()
icolor = 2
End Select
Target.Interior.ColorIndex = icolor
End If
End Sub
其他選項:
Sub Highlight()
Dim cell As Range
For Each cell In Range("C3:T65")
If cell.Value <= Date + 60 And cell.Value > Date + 30 Then
cell.Offset(0, 1).Interior.ColorIndex = 6
ElseIf cell.Value <= Date + 30 Then
cell.Offset(0, 1).Interior.ColorIndex = 3
ElseIf cell.Value IsEmpty() Then
cell.Offset(0, 1).Interior.ColorIndex = 2
End If
Next cell
End Sub
我得到一個編譯錯誤:「Case without Select Case」和「Case cell」突出顯示。 我在某處插入「Do Select」嗎? – user2214690 2013-03-27 22:25:42
我在「Case cell」之前插入了「Select」並且它工作正常。但是,現在我有一個問題: 如果我選擇一個單元格並點擊「Backspace」,則單元格變爲黃色,儘管它是空的。另外,'Case Is <= Date + 60'覆蓋'Case Is <= Date + 30'。關於如何使黃色包含從>日期+30到<=日期+60的任何想法? – user2214690 2013-03-27 22:32:15
我明白了。我以相反的順序重新安排了案例線,並修復了它。非常感謝!! – user2214690 2013-03-27 22:35:30