[英]Why am I getting a “Subscript is out of range” error?
我在UserForm
有以下代碼,該代碼在主模塊中的其他一系列進程的結尾附近調用,但是到達Me.GPListBox.List(iterI, 0) = Split (CCGPValues(key), " - ")(0)
我收到一條錯誤消息,指出下標超出范圍。
在Debug.Print
, For Each
之前,控制台將輸出“ Jorge Cardona”。 這是拆分的第一部分。 CCGPValues(key)
等於“ Jorge CCGPValues(key)
$ 207.31”,但是當它在GPListBox中調用相同的拆分時,它將中斷。 為什么通過Debug.print
運行時會發生這種情況?
Dim key As Variant, iterI As Integer, iterX As Integer
Debug.Print Split(CCGPValues(147), " - ")(0)
For Each key1 In CCGPValues.Keys
Me.GPListBox.AddItem
Me.GPListBox.List(iterI, 0) = Split(CCGPValues(key), " - ")(0) 'Breaks here
Me.GPListBox.List(iterI, 1) = Split(CCGPValues(key), " - ")(1)
CCGPValuesCount = CCGPValuesCount + 1
iterI = iterI + 1
Next key1
您正在運行循環Key1
中For Each key1 In CCGPValues.Keys
和你逝去的分割部分key
在= Split(CCGPValues(key), " - ")(0)
因此,沒有什么可split
,因此未初始化結果數組。 然后從空白數組嘗試讀取第一個元素。 所以子腳本錯誤。
Option Explicit
避免了此類麻煩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.