VBA中的最大加法线长度

Bri*_*les 3 vba access-vba

在VBA中添加数字时是否有最大长度?例如在MS Access中:

 Dim L As Long

    ' this works
    L = 2696 + 2630 + 2860 + 2860 + 2860 + 2860 + 2795 + 2795 + 2630 + 2630 + 2630 + 263

    ' this gives an Overflow error
    L = 2696 + 2630 + 2860 + 2860 + 2860 + 2860 + 2795 + 2795 + 2630 + 2630 + 2630 + 2630

    Debug.Print L
Run Code Online (Sandbox Code Playgroud)

我从来没有见过这个记录.此外,它不会在Visual Studio中的C#中引发溢出错误.

Ale*_* K. 5

整数文字类型Integer(Max +32767):

?typename(2696)
Integer
Run Code Online (Sandbox Code Playgroud)

添加n Integer s 的结果也是类型Integer:

?typename(2696 + 2630)
Integer
Run Code Online (Sandbox Code Playgroud)

一旦累积超出了Integer你的范围,你将得到一个溢出异常,你分配的变量是一个并不重要,Long因为累积是在赋值之前执行的.

解决这个问题的方法是在附加组件中创建一个值Long,您可以使用&类型后缀轻松完成:

L = 2696& + 2630 + ..
Run Code Online (Sandbox Code Playgroud)