【发布时间】:2016-10-16 15:46:27
【问题描述】:
我正在为 VBA 代码搜索 C 中的 MAXINT 之类的常量。我只找到了其他语言的参考资料,找不到 VBA 的参考资料。
如果没有这样的常数,VBA 中的 int 可以容纳的最大数是多少? 我尝试了 2147483647 但出现溢出错误。
【问题讨论】:
-
VBA 中的整数最大值为 32767,最小值为 -32768
-
对于
Long,它是2^31 - 1 = 2147483647。 AFAIK,没有常数。 -
应该注意的是,由于我们不再使用 16 位环境,因此使用 Integer 而不是 Long 几乎没有意义。
-
@marlan:不,整数 = 2 个字节。但除非您创建巨大的数组,否则内存不再是真正的问题。溢出是。
-
好的 @Andre 这是我的结果:在运行代码之前,MS Access 进程消耗了 12.8~9 MB。运行 Dim intArr(100000) As Integer Process 时消耗了 13.1 MB。运行 Dim lngArr(100000) As Long Process 时消耗 13.3 MB。以上测试了大约3次。 结论:VBA 不会在静态整数数组中填充整数。 至于 int 和 lngs 的组合,它们实际上是 Variatns 或 Objects(=references)的数组,很难得出结论……跨度>