VBA嵌套for循环,只有一个循环前进

时间:2017-10-17 08:22:22

标签: excel vba excel-vba

我在Excel中将数据从一个工作簿复制到另一个工作簿时遇到了一个非常奇怪的问题。 代码段:

For iRow = 7 To iMaxCheckRows
    strPartNum = thisSheet.Cells(7, 1).Value
    If strPartNum <> "" Then
        For iSourceRow = 4 To iMaxRows
            If sourceBook.Worksheets(1).Cells(iSourceRow, 2).Value = strPartNum Then
                thisSheet.Cells(iRow, 4).Value = sourceBook.Worksheets(1).Cells(iSourceRow, 4).Value 'here it gets stuck
                Exit For
            End If
        Next iSourceRow
    End If
Next iRow

所有内容都按预期工作,直到第一次满足第二个if语句中的条件。该值被正确复制但在此之后它被卡在这一行上。 iRow递增但iSourceRow不是,并且复制相同的值直到iRow到达iMaxCheckRows。 我尝试使用单步调试它,但它与iRow递增保持在同一行。

我以前从未见过这种行为。有人知道这里有什么线索吗?

1 个答案:

答案 0 :(得分:0)

strPartNum = thisSheet.Cells(7,1).Value应该是strPartNum = thisSheet.Cells(iRow,1).Value

这就是诀窍。现在我觉得很蠢。