如何在48小时内突出显示细胞

时间:2018-01-16 07:28:20

标签: excel vba excel-vba

我试图突出显示48小时之前的细胞。我现在的代码在下面并突出显示了细胞但是当我试图取消不超过48小时的细胞时,它们会保持突出显示。 我是VBA代码的新手,在阅读了很多页面之后,这让我很难过。对此有任何建议将不胜感激。

For i = 1 To cell.Rows.Count
    If cell.Cells(i, 1).Value > Date - 48 Then
        cell.Cells(i, 1).Interior.Color = xlNone
        If cell.Cells(i, 1).Value < Date - 48 Then
            cell.Cells(i, 1).Interior.Color = vbRed
        End If
    End If
Next i

由于

1 个答案:

答案 0 :(得分:0)

如果价值超过48小时或2天,您是否希望它变红?如果单元格包含时间,那么我假设需要48小时,因此您需要将其与Now而不是Date进行比较。试试这个:

For i = 1 To cell.Rows.Count
    With cell.Cells(i, 1)
        If .Value > Now - 2 Then
            .Interior.ColorIndex = xlNone
        Else
            .Interior.Color = vbRed
        End If
    End With
Next i

或稍微整洁:

For Each leftmostcell In cell.Columns(1).Cells
    If leftmostcell.Value > Now - 2 Then
        leftmostcell.Interior.ColorIndex = xlNone
    Else
        leftmostcell.Interior.Color = vbRed
    End If
Next

就个人而言,我不会把我的范围称为“单元格”,因为它看起来很混乱。您可能需要考虑重命名它。