Если начало и конец имеют одинаковое количество элементов, вы можете использовать одну и ту же петлю / одну и ту же переменную управления для обоих.
Sub LoopRanges()
Dim aStart As Variant
Dim aEnd As Variant
Dim i As Long
Dim rCell As Range
'Start and End have some number of elements
aStart = Array("A1", "B3", "C10", "D1")
aEnd = Array("A10", "B15", "C12", "D20")
With Sheet1
'loop through start, but use the same control variable (i) for both start and end
For i = LBound(aStart) To UBound(aStart)
For Each rCell In .Range(.Range(aStart(i)), .Range(aEnd(i))).Cells
Debug.Print rCell.Address
Next rCell
Next i
End With
End Sub
Возможно, это не совсем ваша ситуация, но, надеюсь, она достаточно близка, чтобы быть поучительной. У меня есть два массива - один для какой ячейки начинаться, а другой - для какой ячейки заканчиваться. В моем цикле For Next используйте i
в качестве управляющей переменной и получайте доступ к aStart
и aEnd
, используя эту переменную. Внутренний цикл просто строит диапазон для цикла For Each, который будет повторяться.