vba dateadd 方法让我发疯

问题描述

enter image description here

这是来自 vba Direct Run 窗口的结果。 上面截图中没有操作。 我的Excel疯了吗? 有人请说服我。 谢谢。

解决方法

这不是DateAdd的错,而是你自己不知道NowFormat做了什么。

Now 包含一个 时间部分,您可以使用 Format 和“#”(或“0”)向上或向下舍入。

所以,使用 Date

DateBeforeYesterday = DateAdd("d",-2,Date)
,

Excel 将日期/时间值表示为实数。小数点左边的部分是自 1899 年 12 月 30 日以来的天数。

? Format(0,"mm/dd/yyyy")
12/30/1899

小数部分是一天的小数。

? format(.25,"hh:mm ampm")
06:00 AM

? format(.75,"hh:mm ampm")
06:00 PM

以下表达式是等价的。

dt = DateAdd("d",dateVal) 

dt = dateVal - 2