Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 我的阵列不兼容吗?_Arrays_Vba_Excel - Fatal编程技术网

Arrays 我的阵列不兼容吗?

Arrays 我的阵列不兼容吗?,arrays,vba,excel,Arrays,Vba,Excel,我正在尝试循环通过包含拆分字符串的数组,通过此行完成: repHolder=Splitrep 这一切都很好,但是,当我尝试通过for循环遍历这个repHolder数组时,每次都会遇到下标超出范围的错误 这对我来说毫无意义。当我单步遍历数组时,它每次都会在第一个元素上失败;这一行: 如果repHolderj=计数器,则 我尝试将j设置为0和1,这两个参数在循环的第一个序列中都失败了。这对我来说是个建议,因为数组没有定义的大小;我不能这样循环,但这对我来说仍然没有什么意义,因为它仍然充满了元素 以下

我正在尝试循环通过包含拆分字符串的数组,通过此行完成: 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

谢谢,我不知道我一直在删除数组中的前一个元素