在Excel中使用VBA在活动单元格下插入多行

时间:2018-08-28 16:15:02

标签: excel vba excel-vba insert rows

我正在编写一个宏,该宏遍历每一行(某些行比其他行包含更多的列),并对数列进行计数,并在所选行的下方插入与空白单元格相同的数字。目标是最终将数据复制并粘贴到单个列中。

我能够插入正确数量的空白单元格,但是它们会插入到所选行的上方。我希望将它们插入所选行的下方。任何帮助,将不胜感激!

    rowCount = ActiveSheet.Cells(rows.Count, 5).End(xlUp).Row
    ActiveSheet.Range("E1:E" & rowCount).Select
    For c = 1 To rowCount
        columnCount = ActiveSheet.Cells(c, 
        Columns.Count).End(xlToLeft).Column - 5
            If columnCount > 0 Then
                Let CopyRange = "E" & c & ":" & "E" & (c + columnCount - 1)
                ActiveSheet.Range(CopyRange).EntireRow.Insert Shift:=xlDown
            End If
        rowCount = ActiveSheet.Cells(rows.Count, 5).End(xlUp).Row
        c = c + columnCount
    Next c

1 个答案:

答案 0 :(得分:0)

在当前要插入的行下方插入1行。另外,您可以通过向后循环来简化此操作。

rowCount = ActiveSheet.Cells(rows.Count, 5).End(xlUp).Row
For c = rowCount to 1 step -1
    columnCount = ActiveSheet.Cells(c, Columns.Count).End(xlToLeft).Column - 5
        If columnCount > 0 Then
            Set CopyRange = "E" & c + 1 & ":" & "E" & (c + columnCount)
            ActiveSheet.Range(CopyRange).EntireRow.Insert Shift:=xlDown
        End If
Next c

注意:这未经测试