如果我在VBA中添加两个date,到底发生了什么
请帮助我发生在这里 – 我知道这是愚蠢的,但我想知道。
下面的代码的输出是四月-18-2105。 它是如何popup的?
Private Sub CommandButton1_Click() Dim firstDate As Date, secondDate As Date firstDate = DateValue("Jun 19, 2010") secondDate = DateValue("oct 29,1994") MsgBox (firstDate + secondDate) End Sub
提前致谢!
date实际上是以数字forms存储的,所以如果我们查看这些date的数字值:
CLng(datevalue("Jun 19, 2010")) '// 40348 CLng(datevalue("oct 29, 1994")) '// 34636
并将它们添加在一起:
40348 + 34636 = 74984
并将该号码转换回date:
CDate(74984) '// 18/04/2105
因为00/01/1900之后是74,984天
date是数字,格式为dd / mm / yyyy,我想是从18/12/1899的日子,这就是发生了什么事情。 结果是40348 + 34636 = 74984,这是18/04/2105。
Excel将date存储为指定date之后的天数。 因此,表示2010/06/19date的整数是40348,表示1994/10/29的整数是34636.当您将这些整数相加时,将得到74984,即代表2105/04/18的整数。
引用date因Mac而异。 我在Windows上运行,我没有改变我的参考date设置,这是那些整数来自哪里。 Mac使用1904年1月2日作为第1天,Windows使用1900年1月1日作为第1天。