我试图循环一个包含拆分字符串的数组,通过这一行完成:
grid51grid44grid33grid22grid11
这一切都很好,但是,当我尝试通过Recall.RESP
循环遍历此repHolder() = Split(rep, ",")
数组时,每次遇到repHolder()
错误都会遇到
这对我没有意义。当我单步执行数组时,它每次都会在第一个元素上失败;这一行:
for
我尝试将subscript out of range
设置为0和1,两者都在循环的第一个序列中失败。这对我来说是因为阵列没有规定的大小;我不能以这种方式循环它,但这对我来说仍然没有意义,因为它仍然充满了元素。
以下是我要做的整个代码块:
If repHolder(j) = counter Then
答案 0 :(得分:1)
您循环遍历repNames()
并通过拆分设置此新数组(对于每个repName元素反复重复...)
For Each rep In repNames()
repHolder() = Split(rep, ",")
Next rep
此循环的每次迭代都会将repHolder()
重置为rep
元素的分割,从而删除在上一次迭代中刚刚在该数组中设置的任何值。所以一旦完成,只有RepNames()
的最后一个元素被分割成repHolder()
数组。
例如,如果RepNames()
看起来像:
Element 0: "james,linda,mahesh,bob"
Element 1: "rajesh,sam,barb,carrie"
Element 2: ""
然后在所有这次迭代之后,你的repHolder
数组将变为空,因为最终元素中没有任何内容。
在For Each rangeCell In repComboRange
行上粘贴断点(F9),然后在VBE中查看“本地”窗格。查看当时repHolder()
数组中存储的值。我怀疑那里什么也没有。
另一个奇怪的是你正在循环1到17. repHolder()
将是一个基于0的数组,所以应该是0到16.但是......即使这是无稽之谈,因为这真的只有意义作为For Each循环(或使用uBound(repHolder)
确定循环次数:
For Each counter In strHolder()
Stop
For each repHolderElem in repHolder
If repHolderElem = counter Then
....
Next repHolderElem