Microsoft Lab
全部软件
Excel日期与时间(Date and Time)约 3 分钟

Compare Dates and Times 比较日期和时间

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


跟今天比较

Dim i As Integer

For i = 1 To 5
    If Cells(i, 1).Value = Date Then Cells(i, 1).Font.Color = vbRed
Next i

Date 这个关键字代表「今天」,跟每格的值相等就把字体标红。


跟指定日期比较

If Cells(i, 1).Value < DateValue("April 19, 2019") Then Cells(i, 1).Font.Color = vbRed

用 DateValue 把文字转成日期,再用 <、=、> 比较。


日期时间混在一起时,只比较日期

If Int(Cells(i, 1).Value) = Date Then Cells(i, 1).Font.Color = vbRed

日期时间数值里,整数部分是日期、小数部分是时间。用 Int() 去掉小数部分,只留日期,才能正确跟 Date 比较。


判断是不是上午

If (Cells(i, 1).Value - Int(Cells(i, 1).Value)) < 0.5 Then Cells(i, 1).Font.Color = vbRed

把原始值减去 Int() 取出的日期部分,剩下的就是当天的时间比例,小于 0.5(中午 12 点)代表是上午。


学完你会

常见错误

  • 单元格其实存的是「日期+时间」,却直接拿去跟 Date(只有日期)比较,因为多了时间的小数部分,永远不会相等
  • 忘记 Int() 是取「日期部分」,原值 - Int(原值) 才是「时间部分」,两者用途搞混
  • 用 DateValue 转换文字日期时,日期格式写法跟系统地区设置不一致,转换出错误的日期

Sources

Blog / Website:

  1. Compare Dates and Times
只记在你的浏览器里,换设备不会同步。