VBA日期为整数

BuZ*_*uZz 19 excel datetime vba date excel-vba

有没有办法Date在VBA中获取函数的基础整数?我指的是Excel存储的整数,用天数来描述内存中的日期(当包含时间时,它可以是浮点数然后我猜).我只对整数部分感兴趣.那还有另外一个功能吗?

例如,今天()我希望能够回到40877 ..

感谢你们 ;)

Tom*_*lak 30

日期不是VB(A)中的整数,它是双精度型.

您可以通过传递给Date获取Date的值CDbl().

CDbl(Now())      ' 40877.8052662037 
Run Code Online (Sandbox Code Playgroud)

要获取整数部分,请使用

Int(CDbl(Now())) ' 40877
Run Code Online (Sandbox Code Playgroud)

这将返回没有小数位的Long Double(即Floor()在其他语言中会做什么).

使用CLng()Round()将导致舍入,这将在中午12点之后调用时返回"将来的一天",所以不要这样做.

  • 如果您使用`Date`而不是`Now`所有这些部分日期问题都会消失 - "Date"(函数不是数据类型)将返回没有时间组件的日期. (2认同)
  • @JonEgerton更不用说OP首先询问Date函数,而不是Now函数. (2认同)

Jon*_*ton 11

只是用CLng(Date).

请注意,您需要使用Long没有Integer这个作为当前的日期值> 32767

  • CLng会将下午的值汇总到第二天. (2认同)