如何根据特定单元格的值插入行?

时间:2018-03-20 00:03:21

标签: excel vba excel-vba

我是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

2 个答案:

答案 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