比较日期以查看日期是否已过期

Comparing dates to see if a date is expired

提问人:Ivica Stanoeski 提问时间:8/18/2022 最后编辑:braXIvica Stanoeski 更新时间:8/18/2022 访问量:43

问:

我正在尝试将充满日期的列与当前日期进行比较。如果列中的日期小于当前日期,则我将整行涂成红色。我的代码如下:

   With wb8.Sheets(1)
      For Each rCell In .Range(.Cells(2, "W"), .Cells(.Rows.Count, "W").End(xlUp))
         If IsDate(rCell) Then
            If Format(rCell, "dd.mm.yyyy") < Format(Date, "dd.mm.yyyy") Then
            rCell.EntireRow.Interior.Color = RGB(255, 0, 0)
            End If
         End If
      Next rCell
   End With

现在此代码可以工作,但结果不准确,如下图所示

enter image description here

我怀疑比较无法正常工作,但我对 VBA 不是那么熟练,所以找不到问题。有人可以帮我吗?

Excel VBA 日期 比较

评论


答:

0赞 EylM 8/18/2022 #1

来自 MSDN

当您输入日期时,该日期将转换为序列号,该序列号将 表示 1 月 1 日从 1 开始的经过的天数, 1900. 例如,如果输入 1998 年 7 月 5 日,Excel 会将日期转换为序列号 35981。

这意味着您可以简单地将序列号作为整数进行比较。

If rCell.Value < Date Then
  rCell.EntireRow.Interior.Color = RGB(255, 0, 0)
End If

评论

1赞 Ivica Stanoeski 8/18/2022
你好,EylM。我尝试了您的解决方案,但它没有返回红色行。因此,我创建了一个新变量并将当前日期存储在那里,并与该变量进行了比较,然后它运行良好!