小兔网

本示例教您如何Excel VBA中比较日期和时间日期和时间在Excel中以数字存储,并计算自1900年1月0日以来的天数。您看到的内容取决于数字格式。

1.在A列中输入一些数字。

号码

2.这些数字是日期。这是输入某些日期而不用担心日期格式的理想方法。将格式更改为日期(右键单击列A标头,设置单元格格式,然后选择日期)。

结果:

日期

注意:日期采用美国格式。第一个月,第二天。这种格式取决于您的Windows区域设置。

在您的工作表上放置一个命令按钮,并添加以下代码行:

3.声明整数类型的变量i。

暗淡作为整数

4.添加一个For Next循环。

对于我= 1至5

下一个

5. Date函数返回不带时间的当前日期。将以下代码行添加到循环中,以突出显示包含当前日期(3/13/2020)的所有单元格。

如果 Cells(i,1).Value =日期, Cells(i,1).Font.Color = vbRed

结果:

日期等于

6.将以下代码行添加到循环中,以突出显示所有早于04/19/2019的日期。

如果 Cells(i,1).Value <DateValue(“ April 19,2019 ”)然后 Cells(i,1).Font.Color = vbRed

结果:

日期早于

7.但是时间呢,我们听到你说。他们是小数。切换回常规格式,并将数字更改为十进制数字。

小数

8.现在将格式更改为“日期和时间”格式。

日期和时间格式

结果:

日期和时间

9.如果要突出显示包含当前日期的所有单元格,则不能再使用5处的代码行。为什么不?因为A列中的数字现在是十进制数字。将其与Date(整数)进行比较不会产生任何匹配。(它只会在午夜与3/13/2020进行匹配!)以下代码行确实有效:

如果 Int(Cells(i,1).Value)=日期, Cells(i,1).Font.Color = vbRed

说明:我们仅使用Int函数。Int函数将数字舍入到最接近的整数。这样,我们可以获得没有时间的日期,并将这些日期与日期进行比较。

结果:

没有时间的日期等于

10.添加以下代码行,以突出显示上午所有包含时间的单元格。

如果(Cells(i,1).Value-Int(Cells(i,1).Value))<0.5 那么 Cells(i,1).Font.Color = vbRed

说明:我们只需要小数,因此我们减去整数部分。中午(一天中的一半)表示为0.5。低于0.5的小数点是早晨的时间。

结果:

早上的时间