运行时错误 6 溢出

不正确的代码

Sub DoSomething()
    Dim row As Integer
    For row = 1 To 100000
        'do stuff
    Next
End Sub

为什么这不起作用?

Integer 数据类型是一个 16 位有符号整数,最大值为 32,767; 将其分配给大于该值的任何内容都会溢出该类型并引发此错误。

正确的代码

Sub DoSomething()
    Dim row As Long
    For row = 1 To 100000
        'do stuff
    Next
End Sub

为什么这样做?

通过使用 Long(32 位)整数,我们现在可以创建一个迭代超过 32,767 次的循环,而不会溢出计数器变量的类型。

其他说明

有关更多信息,请参阅数据类型和限制