A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data.
I've modified Shane's code to do what you asked and made a couple of other small modifications along the way. For example, I changed the code to use the empty column after the last column containing either data or formula so that Excel doesn't have to shift everything to the right to accomodate the new inserted column only to move everything to the left when it is deleted; and I also change the square-bracket notation to normal Range notation (sorry Shane, but I hate the square bracket notation). Here is the modified routine (if this answers your question, please mark both it AND Shane's responses as the Answer)...
Sub InsertRows()
Dim Bot As Long, MTcol As Long
Bot = Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlFormulas).Row
MTcol = Cells.Find(What:="*", SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, LookIn:=xlFormulas).Column + 1
With Range(Cells(1, MTcol), Cells(Bot, MTcol))
.Formula = "=IF(ROW()=19,TRUE,IF(AND(ROW()>19,MOD(ROW()-19,17)=0),TRUE,1))"
.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Insert
.EntireColumn.Delete
End With
End Sub