執行時錯誤 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 次的迴圈,而不會溢位計數器變數的型別。

其他說明

有關更多資訊,請參閱資料型別和限制