我是VBA的新手并且正在努力开展一个工作项目,我为我缺乏知识而道歉,但我真的想为老板指出这一点。
我想要完成的事情如下: 我有一个从H2开始到H200的数字列表,每个都在1到150之间。
我正在尝试编写一个宏,在每个数字下插入行,并且数字与计数相同。 (例如,如果数字是42,则在它下面创建42行。然后说它下面的数字是13,然后会有13行......等等。)
当前代码:
Sub InsertRow()
i = 2
count = Cells(i, H).Value
Range("B2").EntireRow.Insert
Range("B2").EntireRow.Resize(count).Insert shift:=xlDown
End Sub
答案 0 :(得分:5)
你已经到了一半。您可以使用for循环遍历所有单元格。但是,由于您将插入行并因此扩展循环中的单元格数量,我建议从底部开始并上升:
For i = cells(Rows.count,"H").end(xlup).row to 2 step - 1
count = Cells(i, 8).Value
Range("B" & i + 1).EntireRow.Resize(count).Insert shift:=xlDown
Next i
答案 1 :(得分:4)
如果要插入行,则需要从底部开始处理。
Sub InsertRow()
dim i as long
with worksheets("sheet1")
for i=.cells(.rows.count, "H").end(xlup).row-1 to 2 step -1
.cells(i, "H").offset(1, 0).resize(.cells(i, "H").value2, 1).entirerow.insert
next i
end with
end sub