Ted,
I think I would use a Do ... Loop Until with an error handler. Also I wouldn't use the selection object:
Sub Tbl_Add_RowsII()
Dim oTbl As Table
Dim oRow As Row
Dim lngSeq As Long
Application.ScreenUpdating = False
Set oTbl = Selection.Tables(1)
lngSeq = 2 'Use 2 to insert row after each odd or even row. Use 3 for every third, 4 for every fourth, etc.)
Set oRow = oTbl.Rows(lngSeq) 'For every odd row
'Set oRow = oTbl.Rows(lngSeq + 1) 'For every even row, or other sequence (e.g., every third, fourth, fifth etc.)
Do
oTbl.Rows.Add oRow
On Error GoTo Err_Index
Set oRow = oTbl.Rows(oRow.Index + lngSeq)
Loop Until oRow.Index = oTbl.Rows.Count
oTbl.Rows.Add oRow
lbl_Exit:
Exit Sub
Err_Index:
If oTbl.Rows.Last.Index - oRow.Index = lngSeq - 1 Then
oTbl.Rows.Add
End If
Resume lbl_Exit
End Sub