Excel中vba提示下標超界,說明對象不存在或者數組元素不存在。
舉個簡單的例子:工作表中沒有"1月"這個工作表,卻用Sheets("1月");數組定義的是arr(1 to 10),卻用Arr(11),都會出現下標越界的提示。
簡單的理解:下標越界就是引用超出了所在的范圍。
當我們在excel的VBA中輸入下面代碼,運行,就會出現“運行時錯誤9下標越界”的提示。代碼如下:
Sub a()
Dim arr() As String
arr(1) = "你好"
End Sub
其實上面的“運行時錯誤9下標越界”是因為定義的動態數組沒有確定維數和尺寸。定義成固定維數和尺寸的,或用Redim界定一下維數和尺寸即可解決此問題。
改正后的代碼如下:
Sub a()
Dim arr() ‘定義一個動態數組
Dim i As Integer
ReDim arr(1 To 3) ‘定義一個3個元素的數組,并且對數組進行初始化
arr(1) = 3
arr(2) = 4
arr(3) = 5
‘在下面語句重新定義一個10個元素的數組,清除前面的元素,并重新分配新的存儲變量
ReDim arr(1 To 10)
For i = 1 To 10
arr(i) = i
Next i
End Sub