VBA,嵌套循环/使用do代替

时间:2020-09-11 17:01:44

标签: excel vba

我有一个数据集,其中每一行都有一个缩写,然后是一个与之关联的日期。然后,下一行是与下一个日期相同的缩写。在日期“范围”的末尾,它将更改为下一个缩写,并贯穿另一个日期范围。

我当然想遍历整个数据集,但是然后我想对每个缩写的子集有一个内部循环。我的想法是在内部循环中增加外部循环,以便当内部循环结束时,外部循环跳到下一组缩写,但是我不认为外部For循环将允许我执行此操作。 / p>

代码如下所示。有没有办法让For循环不遍历每个值,而是“跳到”该Do循环的最后一个值?

    For i = 2 To LastRow
    
'Create a loop through the abbreviations
        Do While Cells(i, 1).value <> Cells(i + 1, 1).value
        i = i + 1
        Loop
        
        
    Next i

1 个答案:

答案 0 :(得分:0)

一种方法是简单地使用两个Do While循环并在条件不成立时递增i

    i = 2

    Do While i <= LastRow
    
        'Create a loop through the abbreviations
        If Cells(i, 1).value <> Cells(i + 1, 1).value Then
           Do While Cells(i, 1).value <> Cells(i + 1, 1).value
              i = i + 1
           Loop
        Else
           i = i + 1
        End If
    Loop