gpt4 book ai didi

vba - 在 VBA 中设置长变量

转载 作者:行者123 更新时间:2023-12-02 16:58:05 25 4
gpt4 key购买 nike

我在任何地方都找不到的简单问题。当我做算术时,似乎自然类型是将值视为 16 位整数。

我试图将 60 * 60 * 8 * 5 的结果保存为 long,但在它有机会之前就收到了 Overflow 错误将数字保存为Long:

Dim secondsInAWorkWeek As Long
secondsInAWorkWeek = 60 * 60 * 8 * 5

Long 应该乐意存储最多 231 = 2,147,483,647 的任何内容

如何安全地执行乘法以转换为长

最佳答案

为了将文字从通用(默认)类型强制转换为特定类型,有一些约定:http://msdn.microsoft.com/en-us/library/dzy06xhf.aspx

这导致了这段代码:

Dim secondsInAWorkWeek As Long

Let secondsInAWorkWeek = 60& * 60& * 8& * 5&

或者:

Const DAYS_IN_WEEK = 5&
Const HOURS_IN_DAY = 8&
Const MINUTES_IN_HOUR = 60&
Const SECONDS_IN_MINUTE = 60&

Dim secondsInAWorkWeek As Long

Let secondsInAWorkWeek = _
DAYS_IN_WEEK _
* HOURS_IN_DAY _
* MINUTES_IN_HOUR _
* SECONDS_IN_MINUTE

确实还有很多东西要写,但是类型安全,几乎不需要任何更多的解释/评论,并且当他们投票支持 10 小时工作日时,很容易更改。 :-)

关于vba - 在 VBA 中设置长变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26509675/

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