我试图在某些时间运行“for循环”,偶尔会在循环中的范围内添加一个额外的行。假设该示例最初有15行,并且在循环期间,条件为真2次,因此它应该将+2添加到总行数中。但是,代码似乎没有执行那些添加的行的循环,并在传递orc = 15的值后立即退出。
以下代码:
sub loop_to_orc()
dim i as integer, orc as integer
dim operations as range
set operations = range(cells(1, 1), cells(, 1).end(xldown))
orc = operations.rows.count
for i = 1 to orc
if cells(i,1)>0 then
rows(i+1).insert
end if
orc = operations.rows.count
next i
end sub
我哪里错了?是否有任何方法可以为添加的行实际运行循环?
答案 0 :(得分:0)
你可以输入一个额外的变量:
Dim rowsAdded As Long
rowsAdded = 1
然后像这样使用它:
for i = 1 to orc
if cells(i,1)>0 then
rows(i+rowsAdded).insert
i = i - 1
rowsAdded = rowsAdded + 1
end if
next i
这样,当插入行时,不会递增i
,但您在循环中选择i
,因此我们必须添加rowsAdded