当VBA在其间插入行时,如何计算行数并将其作为条件?

时间:2011-09-12 13:02:50

标签: vba excel-vba excel

我需要在我的代码中使用循环,在某种情况下我会插入行。

Rowz = activesheet.Cells(Rows.Count, 1).End(xlUp).Row
for j=3 to Rowz ' say number of rowz=1000

但是当插入行之间时,行数会增加。比如说在第200行我插入4行和第500行我插入10行所以数字现在增加到1000以上,所以循环测试直到1000忽略由于插入而被推下的剩余行。但我需要执行该循环,直到最后一行甚至行插入

之间

我想用这些

  for j=3 to activesheet.cells(Rows.count,1).End(xlUp).Row

但是值不是更新我猜它只是检查到1000只是它没有更新to condtion中的行数值。

如果在两者之间创建行,我如何计算行数并将其保持在某个条件下?

2 个答案:

答案 0 :(得分:6)

为什么不尝试向后循环? for j = rowZ to 3 step -1
可能解决你的问题吗?


编辑:选项2,您可以在最后一个之后定义单元格的名称,并引用该命名范围:Range("myLastCell")。每次插入行时都会调整....

答案 1 :(得分:1)

您可能会尝试遍历范围:

Sub LoopRange()
   Dim cell As Range, Rowz as Long
   Rowz = Activesheet.Cells(Rows.count,1).End(xlUp).Row
   For Each cell In Range("A1:A" & Rowz)
    'do things
   Next Bcell
End Sub

警告: vba会解析整个范围,包括插入的行,所以如果你在每个循环上插入一行,你的程序将无限循环(注意,您可以使用 Ctrl + 暂停来停止代码的执行(如果发生)