此声明导致VBA溢出:

Const OVERFLOWS As Long = 10 * 60 * 60

而直接设置值很好:

Const COMPILES_OK As Long = 36000

你如何说服VBA将文字整数视为长篇?

由于

有帮助吗?

解决方案

long 后缀& 添加到至少一个数字中:

Const OVERFLOWS As Long = 10& * 60 * 60

请注意,使用 CLNG 函数将值转换为 long 将不起作用,因为VBA不允许将函数的返回值赋值为常量。 / p>

其他提示

http://support.microsoft.com/kb/191713 是一个很好的总结VBA / VB4-6中可用的类型声明字符。

对于那些找到&符号有点深奥,另一种方法是使用CLNG函数将数字转换为long

Const OVERFLOWS As Long = CLNG(10) * 60 * 60
然后,您可以为单个常量

执行类似的操作
Const OVERFLOWS As Single = CSNG(10) * 60 * 60

类型字符也可以附加到文字:Const OVERFLOWS As Long =(10& * 60 * 60) (其中一个是足够的,因为VBA引擎评估表达式的方式)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top