我有一个循环进入另一个循环,但它们没有按预期工作

时间:2019-05-06 02:10:27

标签: excel vba loops

我正在尝试将一个叫做j的循环放到另一个叫做i的循环中。在其中一种方法中,我尝试了j循环在i循环之前结束,并每次都复制相同的数字,因为i循环没有前进。

For i = 2 To lastRowK
    For j = 5 To 500
    If Worksheets(1).Cells(i, 5).Value = 7 Then
        Worksheets(2).Cells(j, 6).Value = Worksheets(1).Cells(i, 1).Value
    Next j
Next i

在另一个选项中,我尝试为Next j设置条件,但它给了我一个编译错误:Next for for。

For i = 2 To lastRowK
    For j = 5 To 500
    If Worksheets(1).Cells(i, 5).Value = 7 Then
        Worksheets(2).Cells(j, 6).Value = Worksheets(1).Cells(i, 1).Value
    If KRData.Cells(i, 5).Value = 7 Then _
    Next j
Next i

我尝试过的第三个选项是将next放在条件中,但它返回一个编译错误:预期的列表分隔符或语句的结尾。

For i = 2 To lastRowK
    For j = 5 To 500
    If Worksheets(1).Cells(i, 5).Value = 7 Then
        Worksheets(2).Cells(j, 6).Value = Worksheets(1).Cells(i, 1).Value
    If KRData.Cells(i, 5).Value = 7 Then _
    Next j AND Next i

此外,如果不能,请结束。

1 个答案:

答案 0 :(得分:0)

确保在循环开始之前已设置TolastRowK。如果它的值小于初始值(在您的情况2中),则表达式将评估为false并终止循环。

For i = 0 To 3
Next i

将循环直到i =4。它将终止循环并在Next语句之后的下一行代码处恢复执行。

For i = 2 To 1
Next i 

在此示例中,循环将立即终止并前进到下一条语句之前的第一行代码。我愿意打赌,如果您在循环的初始化时放置一个断点,并在工具菜单中检查了局部变量,您会发现lasRowK的值为Empty或小于等于1。