此声明导致VBA溢出:
Const OVERFLOWS As Long = 10 * 60 * 60
而直接设置值很好:
Const COMPILES_OK As Long = 36000
你如何说服VBA将文字整数视为长篇?
由于
答案 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引擎评估表达式的方式)。