10

此声明导致 VBA 中的溢出:

Const OVERFLOWS As Long = 10 * 60 * 60

而直接设置值很好:

Const COMPILES_OK As Long = 36000

您如何说服 VBA 将文字整数视为 long?

谢谢

4

4 回答 4

14

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

Const OVERFLOWS As Long = 10& * 60 * 60

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

于 2008-11-04T11:48:54.100 回答
4

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

于 2008-11-04T12:02:20.203 回答
4

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

Const OVERFLOWS As Long = CLNG(10) * 60 * 60

然后你可以对 Single 常量做类似的事情

Const OVERFLOWS As Single = CSNG(10) * 60 * 60
于 2008-11-04T12:12:59.057 回答
3

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

于 2008-11-04T11:52:32.687 回答