在循环内更新For循环的结尾

时间:2015-12-21 15:06:37

标签: excel-vba vba excel

我今天下午试图创建一个循环,循环结束是灵活的,因为循环内的代码在已存在的行之间添加了行。

For row = 2 To LastRow
    If Not wks.Cells(row, 13) = 0 Or Not IsEmpty(wks.Cells(row, 13)) Then
        wks.Cells(row, 15) = ini
        add = wks.Cells(row, 13).Value - 1
        Range(Cells(row + 1, 1), Cells(row + 1 + add, 15)).Insert Shift:=xlDown
        LastRow = LastRow + add

    Else
        wks.Cells(row, 15).Value = wks.Cells(row - 1, 15).Value + 1
    End If
Next row

但是我发现一旦循环开始它接受LastRow的值,并将该数字保持为结束值。所以我更新LastRow的代码只更新了变量,但没有更新循环结束。

我通过计算LastRow的最终值轻松解决了这个问题,因为它是第13列/ M列中所有值的总和。因此我删除了LastRow = LastRow + add并使用了此代码:

LastRow = wks.Cells(wks.Rows.Count, "M").End(xlUp).row
LastRow1 = LastRow
For row1 = 2 To LastRow
    LastRow1 = LastRow1 + Cells(row1, 13).Value
Next row1

现在我想知道是否有办法让循环在To之后为每次迭代评估变量,以便始终采用最新值?

0 个答案:

没有答案