如何一次循环遍历数组中的多个元素

时间:2016-09-28 17:13:14

标签: vba excel-vba excel

我试图在一个大数组中循环10个元素,看看是否与另一个数组有任何不匹配(让我们称之为array2)。

Dim j As Long, i As Long, arr As Variant

mismatch = Compare_array(array1, array2)    'Compare_array is a function and returns an array of mismatches

For i =LBound(mismatch) to UBound(mismatch)
    j=0
    For arr = mismatch(j + 1, 1) To mismatch(j + 10, 1)
         'other code'
    Next
Next

基本上我想做的是获取不匹配数组的10个元素并用它执行其他程序。完成其他过程后,我想获取不匹配数组的下10个元素,依此类推。我只是不确定我是否正确完成了第二次声明。

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

如果我正确理解了这个问题,那么你需要做的就是逐步完成数组10s,然后让内部循环偏移主索引:

For i = LBound(mismatch) To UBound(mismatch) - 10 Step 10
    For j = 0 To 9
        arr = mismatch(i + j)
         'other code'
    Next
Next

如果您没有要求子组只有10个元素,您可以通过循环遍历最多元素来向内部循环添加单独的绑定计算,或者剩下很多元素:

For i = LBound(mismatch) To UBound(mismatch) Step 10
    Dim innerBound As Long

    If i + 10 > UBound(mismatch) Then
        innerBound = UBound(mismatch) - i
    Else
        innerBound = 9
    End If
    For j = 0 To innerBound
        arr = mismatch(i + j)
        'other code
    Next
Next