我的代碼,將根據不同的參數表不同的顏色中突出數據的選擇行這段代碼:使用空(或別的東西),以避免「內存不足」
Public Sub HighlightRecentSampleRequests()
Dim sht As Worksheet
Dim LastRow As Long
Dim cell As Range
Dim dt, txt
Set sht = Worksheets("Sample Transfer Log")
LastRow = sht.Cells(Rows.Count, "A").End(xlUp).Row
For Each cell In sht.Range("K3:K" & LastRow).Cells
dt = cell.Value
txt = cell.Offset(0, -3).Value
If dt >= Date - 7 And txt = "Sample Receipt" Then
cell.Range("A1:P1").Offset(0, -10).Interior.ColorIndex = 45 'orange
ElseIf dt >= Date Then
cell.Range("A1:P1").Offset(0, -10).Interior.ColorIndex = 6 'yellow
Else
cell.Range("A1:P1").Offset(0, -10).Interior.Color = RGB(220, 230, 242) 'default color
End If
Next
End Sub
我做了改變我的原始代碼,以產生上述,使它做我想要的。現在,當我運行我的系統時,我正在不斷收到「Out of Memory」消息。這似乎是由於If語句的最後部分,其中所有不符合先前條件的單元格都將高亮顯示爲默認顏色。我試圖用變量引用該範圍,然後在完成使用後將該變量設置爲'Nothing',但返回了'無效使用Null'的消息,之後這些變量無用,需要刪除代碼再次工作。
基本上,我想擺脫'內存不足'的消息,而不用擰我的整個代碼。
任何不使用條件格式而不是vba的理由? – DragonSamu
不知道是否range.interior.color將採取十六進制,但你可以嘗試。 http://dmcritchie.mvps.org/excel/colors.htm – MatthewD
如何不將它設置爲任何顏色。出於何種原因,您將其設置爲默認值?它不是默認的嗎? – MatthewD