Arrays 我的阵列不兼容吗?
我正在尝试循环通过包含拆分字符串的数组,通过此行完成: repHolder=Splitrep 这一切都很好,但是,当我尝试通过for循环遍历这个repHolder数组时,每次都会遇到下标超出范围的错误 这对我来说毫无意义。当我单步遍历数组时,它每次都会在第一个元素上失败;这一行: 如果repHolderj=计数器,则 我尝试将j设置为0和1,这两个参数在循环的第一个序列中都失败了。这对我来说是个建议,因为数组没有定义的大小;我不能这样循环,但这对我来说仍然没有什么意义,因为它仍然充满了元素 以下是我尝试执行的全部代码块:Arrays 我的阵列不兼容吗?,arrays,vba,excel,Arrays,Vba,Excel,我正在尝试循环通过包含拆分字符串的数组,通过此行完成: repHolder=Splitrep 这一切都很好,但是,当我尝试通过for循环遍历这个repHolder数组时,每次都会遇到下标超出范围的错误 这对我来说毫无意义。当我单步遍历数组时,它每次都会在第一个元素上失败;这一行: 如果repHolderj=计数器,则 我尝试将j设置为0和1,这两个参数在循环的第一个序列中都失败了。这对我来说是个建议,因为数组没有定义的大小;我不能这样循环,但这对我来说仍然没有什么意义,因为它仍然充满了元素 以下
Dim repHolder() As String
Dim strHolder() As String
Dim counter As Variant
Dim j As Integer
For Each rep In repNames()
repHolder() = Split(rep, ",")
Next rep
For Each rangeCell In repComboRange
k = 1
Do
If rangeCell.Value = repCombos(k) Then 'At this point, if rangecell = repcombos(k)
Range(rangeCell, rangeCell.End(xlToRight)).Copy
strHolder() = Split(rangeCell.Value, "/")
For Each counter In strHolder()
Stop
For j = 1 To 17
If repHolder(j) = counter Then
您正在通过repName循环,并通过为每个repName元素多次拆分来设置此新数组
For Each rep In repNames()
repHolder() = Split(rep, ",")
Next rep
此循环的每次迭代都会将repHolder重置为rep元素的一部分,删除在上一次迭代中刚刚在该数组中设置的值。因此,完成后,只有repname的最后一个元素被拆分到repHolder数组中
例如,如果RepNames看起来像:
Element 0: "james,linda,mahesh,bob"
Element 1: "rajesh,sam,barb,carrie"
Element 2: ""
在所有这些迭代之后,repHolder数组将为空,因为最后一个元素中没有任何内容
在repComboRange行中的每个rangeCell上粘贴一个断点F9,并在VBE中查看“局部变量”窗格。检查在该时间点存储在repHolder数组中的值。我怀疑里面什么都没有
这里的另一个奇怪之处是,你正在循环1到17。repHolder将是一个基于0的数组,因此应该是0到16。但是甚至这都是胡说八道,因为这实际上只适用于每个循环或使用uBoundrepHolder确定循环次数:
For Each counter In strHolder()
Stop
For each repHolderElem in repHolder
If repHolderElem = counter Then
....
Next repHolderElem
谢谢,我不知道我一直在删除数组中的前一个元素