Excel 使用Null(或其他内容)避免“内存不足”

Excel 使用Null(或其他内容)避免“内存不足”,excel,vba,null,out-of-memory,Excel,Vba,Null,Out Of Memory,我有一段代码,它将突出显示表中选定的数据行,并根据不同的参数使用不同的颜色: 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

我有一段代码,它将突出显示表中选定的数据行,并根据不同的参数使用不同的颜色:

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
我对我的原始代码进行了修改,以生成上面的代码,使其满足我的要求。现在,当我运行系统时,我不断收到“内存不足”消息。这似乎是由于If语句的最后一部分,其中所有不符合先前条件的单元格都将高亮显示为默认颜色。我尝试使用一个变量引用该范围,然后在完成使用后将该变量设置为“Nothing”,但这返回了一条“无效使用Null”的消息,此后这些变量无效,需要删除以使代码再次工作


基本上,我希望在不破坏整个代码的情况下删除“内存不足”消息。

您可以尝试使用case语句。像这样的

    Select Case dt
        Case Is >= Date - 7
            If txt = "Sample Receipt" then
                cell.Range("A1:P1").Offset(0, -10).Interior.ColorIndex = 45 'orange
            End If
        Case Is >= Date
            cell.Range("A1:P1").Offset(0, -10).Interior.ColorIndex = 6 'yellow
        Case Else
            cell.Range("A1:P1").Offset(0, -10).Interior.Color = RGB(220, 230, 242) 'default color
    End Select

在查看实际文件之后,除了您的代码处理范围之外,还有一个变化的范围,用户表单正在调用它,这并不是内存问题的直接原因

因为当.Show用于特定的用户窗体时,有多个用户窗体正在加载到内存中。在处理UserForm之后,它们不会通过使用.Unload从内存中释放出来,而是在后台保持活动状态并占用内存空间


通过在处理UserForm后正确使用.Unload和.Load,或在需要时再次显示UserForm,可以正确释放内存

不使用条件格式而不是vba的任何原因?不确定range.interior.color是否将使用十六进制,但您可以尝试。不设为任何颜色如何。您将其设置为默认值的原因是什么?它不是默认值吗?您可以使用条件格式,并根据criteria@KarlGilbert您对条件格式解决方案感兴趣吗?