在VBA中计算const时溢出

时间:2008-11-04 11:28:56

标签: vba const overflow

此声明导致VBA溢出:

Const OVERFLOWS As Long = 10 * 60 * 60

而直接设置值很好:

Const COMPILES_OK As Long = 36000

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

由于

4 个答案:

答案 0 :(得分:14)

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

Const OVERFLOWS As Long = 10& * 60 * 60

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

答案 1 :(得分:4)

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

答案 2 :(得分:4)

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

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

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

答案 3 :(得分:3)

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