在 VBA 中睡觉(整数溢出!!)

Posted

技术标签:

【中文标题】在 VBA 中睡觉(整数溢出!!)【英文标题】:Sleeping in VBA (Integer Overflow!!) 【发布时间】:2011-02-25 05:28:17 【问题描述】:

在 VBA 中你可以

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

为自己提供睡眠习惯。

但是,对于超过 32000 毫秒的值,必须传递给例程的 Long 似乎会溢出。

有没有一种方法可以让睡眠更长时间,而无需将多个连续调用睡眠例程的复杂性串联在一起?

【问题讨论】:

在循环中调用Sleep 算作“将几个连续的调用串在一起”吗? 【参考方案1】:

不,它不会溢出,除非计算所需毫秒数的代码导致溢出。

例子:

dim t as long
t = 10000 * 10000 / 10000 'Overflow

示例 2:

dim t as long
t = 10000! * 10000 / 10000 'Ok

【讨论】:

你是对的。问题只是我没有指定我的论点是一个足够明确的 Long。

以上是关于在 VBA 中睡觉(整数溢出!!)的主要内容,如果未能解决你的问题,请参考以下文章

VBA 溢出行为

Access VBA中的DMin函数溢出错误

VBA 日期为整数

整数溢出实验

在 C# 中处理整数溢出的最佳方法?

整数溢出在 Swift 中给出 EXC_BAD_INSTRUCTION