Well, unless your actual sheet is different from the posted sample, the original code can't insert random numbers of rows. It only pushes the currently active row down one row. The new code copies the first two blank rows below the data and pastes it in pushing the last row down two, moves up the the next row, copies the two blanks just pasted... tested on the sample provided.
Option Explicit
Sub InsertRows()
Dim LastRow As Long, _
NewRow As Long
Const FirstRow As Long = 9
LastRow = Cells(Rows.Count, "a").End(xlUp).Row
'start at the last row
For NewRow = LastRow To FirstRow Step -1
'copy the first two blank rowsbelow the data
Range("A" & NewRow).Offset(1, 0).Resize(2).EntireRow.Copy
'insert the two blank rows
Range("A" & NewRow).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next NewRow
Application.DataEntryMode = False
Range("A1").Select
End Sub
Bookmarks