共用方式為


下標超出範圍 (錯誤 9)

[陣列] 元素和 [集合]成員只能在其定義範圍內存取。 此錯誤發生的原因與解決方案如下:

  • 您參照的陣列元素不存在。 下標可能比可能的下標範圍大或小,或陣列元素現在在應用程式中可能還未指派維度。 檢查陣列的 [宣告],以驗證其上限與下限。 如果您使用的是重新維度的陣列,請使用 [UBound][LBound] 功能來調整陣列存取。 如果索引指定為 [變數],請檢查變數名稱的拼字。

  • 您宣告了陣列,但並未指定元素的數目。 例如,下列代碼會造成此錯誤:

      Dim MyArray() As Integer 
      MyArray(8) = 234 ' Causes Error 9. 
    

    Visual Basic 不會隱含維度未指定陣列範圍為 0 - 10。 相反地,您必須使用 [Dim][ReDim],以明確指定陣列中的元素數目。

  • 您參照的集合成員不存在。 請嘗試使用 [For Each...Next] 建構,而不是指定索引元素。

  • 您使用了簡短格式的下標,隱含指定了無效的元素。 例如,當您搭配集合使用 運算子時, 會隱含指定索引鍵。 例如,objectkeyname. value 相當於object.item (keyname) . value。 在此情況下,如果 [keyname] 代表集合中無效索引鍵,則會產生錯誤。 若要修正錯誤,請使用有效的集合索引鍵名稱或索引。

如需詳細資訊,請選取有疑問的項目並按 F1 (在 Windows 中) 或 HELP (在 Macintosh 上)。

注意事項

對於開發跨多個平台,擴充使用者 Office 體驗的解決方案感到興趣嗎? 請參閱新的 Office 增益集模型。 與 VSTO 增益集和解決方案相比,Office 增益集的佔用空間較小,而且您可以使用幾乎任何網頁程式技術 (例如 HTML5、JavaScript、CSS3 和 XML) 來建立這些增益集。

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應