我今天下午试图创建一个循环,循环结束是灵活的,因为循环内的代码在已存在的行之间添加了行。
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之后为每次迭代评估变量,以便始终采用最新值?