All you basically need is to load the 1st cell of the new row with "=Row()", not "27". That way as more rows get pushed down cell A1 of each row always shows its row value. Something just past the insert like

Selection.Insert Shift:=x1Down
ActiveCell.Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=ROW()"