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

Ant*_*one 6 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
Run Code Online (Sandbox Code Playgroud)

小智 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
Run Code Online (Sandbox Code Playgroud)


小智 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
Run Code Online (Sandbox Code Playgroud)