gpt4 book ai didi

excel - 规范化 VBA 中关于时间的日期

转载 作者:行者123 更新时间:2023-12-04 21:31:22 28 4
gpt4 key购买 nike

我知道这个问题已经讨论了很多——但实际上我还没有找到这个问题的最终答案。
我想从我的 VBA(Excel)脚本中的日期“删除”(或更确切地说是标准化)时间。例如。:

20.12.2017 15:16

应该转化为
20.12.2017 00:00

据我所知,作为 Format() 或 NumberFormat() 的函数只会改变外观/格式,但不会改变值本身。在我的情况下,有必要实际更改值,即从 43089,64(等于 20.12.2017 15:16)向下舍入到 43089,00(等于 20.12.2017 00:00)。
人们经常建议使用 int(),其他人说这可能导致溢出,因为整数限制为 32767(似乎合法),你应该使用 CLng。但是当我改为应用 CLng 时,它会四舍五入到 43090,这不是我的目标。然后其他人再次建议在字符串中剪切日期或使用 CLng() 结合 floor() 或 rounddown()。

谁能告诉我我是否可以实际使用 int() 或者这是否会造成溢出?否则,什么是安全且高效的解决方案?

我感谢您的帮助!

最佳答案

Int()返回与传递相同的数据类型,因此您不会导致溢出。 Fix()不过,这种用法更好,因为它处理负数的方式(例如,纪元日期之前的日期)。在负数的情况下,Int()返回小于输入的下一个数字,具有减去一天的效果。 Fix()简单地删除浮点类型的非整数部分:

Debug.Print Int(-1.5)   'returns -2
Debug.Print Fix(-1.5) 'returns -1

关于excel - 规范化 VBA 中关于时间的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51582057/

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