我UserForm
在主模块中的一系列其他进程的末尾附近有一个位于内的以下代码,但是当到达Me.GPListBox.List(iterI, 0) = Split (CCGPValues(key), " - ")(0)
该代码时,我收到一条错误消息,指出下标超出范围。
在的Debug.Print
紧前面For Each
,控制台将输出“ Jorge Cardona”。这是拆分的第一部分。CCGPValues(key)
等于“ Jorge Cardona-$ 207.31”,但是当它在GPListBox中调用相同的拆分时,它将中断。为什么通过via会发生这种情况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
避免了此类头痛。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句