此声明导致 VBA 中的溢出:
Const OVERFLOWS As Long = 10 * 60 * 60
而直接设置值很好:
Const COMPILES_OK As Long = 36000
您如何说服 VBA 将文字整数视为 long?
谢谢
将long
后缀添加&
到至少一个数字:
Const OVERFLOWS As Long = 10& * 60 * 60
请注意,使用CLNG
函数将值转换为long
不起作用,因为 VBA 不允许将函数的返回值分配给常量。
http://support.microsoft.com/kb/191713是对 VBA / VB4-6 中可用的类型声明字符的一个很好的总结。
对于那些觉得 & 符号有点深奥的人,另一种方法是使用 CLNG 函数将数字转换为 long
Const OVERFLOWS As Long = CLNG(10) * 60 * 60
然后你可以对 Single 常量做类似的事情
Const OVERFLOWS As Single = CSNG(10) * 60 * 60
类型字符也可以附加到文字: Const OVERFLOWS As Long = (10& * 60 * 60) (实际上一个就足够了,因为 VBA 引擎评估表达式的方式)。