题
此声明导致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引擎评估表达式的方式)。
不隶属于 StackOverflow