gpt4 book ai didi

excel - VBA 日期作为整数

转载 作者:行者123 更新时间:2023-12-01 17:15:03 25 4
gpt4 key购买 nike

有没有办法在 VBA 中获取 Date 函数的基础整数?我指的是 Excel 存储的整数,用于以天数来描述内存中的日期(当包含时间时,我猜它可以是 float )。不过我只对整数部分感兴趣。是否还有另一个函数可以实现这一点?

例如,对于今天(),我希望能够返回 40877..

最佳答案

日期在 VB(A) 中不是整数,而是 double 型。

您可以通过将 Date 的值传递给 CDbl() 来获取它。

CDbl(Now())      ' 40877.8052662037 

来自documentation :

The 1900 Date System

In the 1900 date system, the first day that is supported is January 1, 1900. When you enter a date, the date is converted into a serial number that represents the number of elapsed days starting with 1 for January 1, 1900. For example, if you enter July 5, 1998, Excel converts the date to the serial number 35981.

因此,在 1900 系统中,40877.805... 表示 1900 年 1 月 1 日(2011 年 11 月 29 日)之后的 40,876 天,约占一天的 80.5%(约 19:19h)。 Excel中有一个针对基于1904的系统的设置,使用该设置时数字将关闭(这是每个工作簿的设置)。

要获取整数部分,请使用

Int(CDbl(Now())) ' 40877

它将返回一个没有小数位的 Long Double(即Floor()在其他语言中的作用)。

使用CLng()Round()会导致四舍五入,在中午12:00之后调用时将返回“ future 的一天”,所以不要不要那样做。

关于excel - VBA 日期作为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com