在VBA中多次插入特定行

时间:2015-09-11 15:01:39

标签: vba insert row

我们的客户希望他们的Excel工作表格式化为每当“A”列中存在新值时,将新标题(整个“1”行)插入最后一个值之上

基本上我在复制行'1'并在我在'A'列中找到新值时插入它

这是我用来格式化它的子,但它只是保持循环和崩溃。

Sub insertHeader()

Range("A2").Select

Do Until ActiveCell.Value = ""

    If ActiveCell.Value = ActiveCell.Offset(1, 0) Then

        ActiveCell.Offset.Select

    Else

        Range("A1").EntireRow.Insert
        ActiveCell.Offset.Select

    End If

Loop

End Sub

1 个答案:

答案 0 :(得分:0)

你必须告诉Offset偏移的方式和位置。与偏移(行偏移,列偏移)一样:

ActiveCell.Offset(1,0).Select

哦,还有你的副本,伙计......好的,这是代码:

range("a3").select
Do Until ActiveCell.Value = ""

  If ActiveCell.Value <> ActiveCell.Offset(-1, 0).Value Then 
  'comparing it upwards, as the standard insert will insert a row above your active cell.

    ActiveCell.EntireRow.Insert
    Range("a1").EntireRow.Copy ActiveCell
    ActiveCell.Offset(1, 0).Select
     'move on to the row I was at before inserting a new row

  End If
  ActiveCell.Offset(1, 0).Select
Loop