只能在定義的範圍內訪問陣列元素和集合成員。此錯誤有以下的原因和解決方法:
引用了不存在的陣列元素.
下標比可能下標範圍大或小,或是在應用程式中這一邊的陣列沒有指定範圍。檢查陣列的宣告以確認其上界和下界。若使用的是重新指定範圍的陣列,應使用 UBound 和 LBound 函式來決定陣列訪問。如果索引指定為變數,應檢查變數名的拼寫。
宣告陣列時沒有指定元素的數目。例如,下列的程式碼就會導致此錯誤:
Dim MyArray() As Integer
MyArray(8) = 234 " 導致錯誤 9。
Visual Basic 並不會將沒有指定範圍的陣列自動設為 0 – 10。相反必須使用 Dim 或 ReDim 來指定陣列中元素的數目。
引用了不存在的集合成員。
試著使用 For Each...Next 結構代替指定元素下標。
使用速寫形式的下標,結果指定了錯誤的元素。
例如,當在集合上使用 ! 運運算元時,! 自動指定了一個鍵。例如 object!keyname.value 和 object.item(keyname).value 是一樣的。在此例中,集合中如果 keyname 表示一個錯誤鍵,錯誤就會產生。若要改進此錯誤,在集合物件中使用正確的鍵名稱或索引。
詳細資訊,可選取有問題的專案,並按下 F1 鍵。
只能在定義的範圍內訪問陣列元素和集合成員。此錯誤有以下的原因和解決方法:
引用了不存在的陣列元素.
下標比可能下標範圍大或小,或是在應用程式中這一邊的陣列沒有指定範圍。檢查陣列的宣告以確認其上界和下界。若使用的是重新指定範圍的陣列,應使用 UBound 和 LBound 函式來決定陣列訪問。如果索引指定為變數,應檢查變數名的拼寫。
宣告陣列時沒有指定元素的數目。例如,下列的程式碼就會導致此錯誤:
Dim MyArray() As Integer
MyArray(8) = 234 " 導致錯誤 9。
Visual Basic 並不會將沒有指定範圍的陣列自動設為 0 – 10。相反必須使用 Dim 或 ReDim 來指定陣列中元素的數目。
引用了不存在的集合成員。
試著使用 For Each...Next 結構代替指定元素下標。
使用速寫形式的下標,結果指定了錯誤的元素。
例如,當在集合上使用 ! 運運算元時,! 自動指定了一個鍵。例如 object!keyname.value 和 object.item(keyname).value 是一樣的。在此例中,集合中如果 keyname 表示一個錯誤鍵,錯誤就會產生。若要改進此錯誤,在集合物件中使用正確的鍵名稱或索引。
詳細資訊,可選取有問題的專案,並按下 F1 鍵。