在VBA中计算常量时溢出
此声明导致VBA中溢出:在VBA中计算常量时溢出,vba,constants,overflow,Vba,Constants,Overflow,此声明导致VBA中溢出: Const OVERFLOWS As Long = 10 * 60 * 60 而直接设置该值则可以: Const COMPILES_OK As Long = 36000 如何说服VBA将文字整数视为长整数 谢谢将长后缀&添加到至少一个数字: Const OVERFLOWS As Long = 10& * 60 * 60 请注意,使用CLNG函数将值转换为long将不起作用,因为VBA不允许将函数的返回值指定给常量。类型字符也可以附加到文字:Const OV
Const OVERFLOWS As Long = 10 * 60 * 60
而直接设置该值则可以:
Const COMPILES_OK As Long = 36000
如何说服VBA将文字整数视为长整数
谢谢将
长
后缀&
添加到至少一个数字:
Const OVERFLOWS As Long = 10& * 60 * 60
请注意,使用
CLNG
函数将值转换为long
将不起作用,因为VBA不允许将函数的返回值指定给常量。类型字符也可以附加到文字:Const OVERFLOWS As long=(10&*60*60)
(由于VBA引擎对表达式求值的方式,其中一个很有说服力)。是VBA/VB4-6中可用类型声明字符的一个很好的总结。对于那些认为&符号有点深奥的人,另一个选择是使用CLNG函数,该函数将数字转换为长字符
Const OVERFLOWS As Long = CLNG(10) * 60 * 60
然后你可以对一个常数做类似的事情
Const OVERFLOWS As Single = CSNG(10) * 60 * 60
问题的原因是Access中的默认数字类型为整数。我认为类型声明字符使用较少,而dbb建议的Clng等是首选。