提问人:Ivica Stanoeski 提问时间:8/18/2022 最后编辑:braXIvica Stanoeski 更新时间:8/18/2022 访问量:43
比较日期以查看日期是否已过期
Comparing dates to see if a date is expired
问:
我正在尝试将充满日期的列与当前日期进行比较。如果列中的日期小于当前日期,则我将整行涂成红色。我的代码如下:
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
现在此代码可以工作,但结果不准确,如下图所示
我怀疑比较无法正常工作,但我对 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。我尝试了您的解决方案,但它没有返回红色行。因此,我创建了一个新变量并将当前日期存储在那里,并与该变量进行了比较,然后它运行良好!
评论