比较日期和时间在Excel VBA
这个例子教你如何比较日期和时间在Excel VBA。日期和时间存储在Excel中的数字,自1月0日,1900年你所看到的取决于数字格式计数的天数。
1.在A列输入一些数字
2.这些数字是日期。这是不用担心的日期格式输入一些日期的完美方式。更改格式设置为日期(右键单击列标题,设置单元格格式并选择日期)。
结果:
注:日期是美国格式。月第一,二日。这种类型的格式取决于您的Windows区域设置。
将工作表上的一个命令按钮并添加以下代码行:
3.声明类型整数的变量i。
Dim i As Integer
4.添加一个For Next循环。
For i = 1 To 5 Next i
5.日期函数返回没有时间的当前日期。下面的代码行添加到环,以突出显示包含当前日期(2020年3月13日)的所有单元格。
If Cells(i, 1).Value = Date Then Cells(i, 1).Font.Color = vbRed
结果:
6.将以下代码行添加到循环,以突出显示所有的日期早于2019年4月19日。
If Cells(i, 1).Value < DateValue("April 19, 2019") Then Cells(i, 1).Font.Color = vbRed
结果:
7.但是关于时间,我们听到你说什么。他们是小数。切换回普通格式,更改数字,以十进制数。
8.现在格式更改为“日期和时间”的格式。
结果:
9.如果你想突出显示包含当前日期的所有单元格,我们不能在5使用的代码行了。为什么不?因为在A列中的数字是十进制数了。它与日期(整数)相比较不会给任何对手。 (它只会在午夜给与之匹配的2020年3月13日正好!)下面的代码行不工作:
If Int(Cells(i, 1).Value) = Date Then Cells(i, 1).Font.Color = vbRed
说明:我们简单地使用Int函数。 INT函数数字舍入到最接近的整数。这样我们就可以得到没有时间日期和这些日期与时间进行比较。
结果:
10.添加以下代码行突出显示含有次在早晨所述所有单元。
If (Cells(i, 1).Value - Int(Cells(i, 1).Value)) < 0.5 Then Cells(i, 1).Font.Color = vbRed
说明:我们只需要小数所以因此我们减去整数部分。中午(中途天)被表示为0.5。
小数低于0.5的时代是在早晨。
结果: