Public Sub Print_Sheet()
Dim saveView As XlWindowView
Dim repeatRows As String
Dim titlesLastPage As Long
Dim startPrintRow As Long
Dim parts As Variant
repeatRows = "$1:$7"
titlesLastPage = 10
saveView = ActiveWindow.View
ActiveWindow.View = xlPageBreakPreview
With ActiveSheet
.PageSetup.PrintArea = ""
.PageSetup.PrintTitleRows = repeatRows
startPrintRow = .Range(.HPageBreaks(titlesLastPage).Location).Row + Range(repeatRows).Rows.Count - 1
.PrintOut From:=1, To:=titlesLastPage, Copies:=1, Collate:=True, IgnorePrintAreas:=False
parts = Split(.UsedRange.Address, ":")
.PageSetup.PrintTitleRows = ""
.PageSetup.PrintArea = Left(parts(0), InStrRev(parts(0), "$")) & startPrintRow & ":" & parts(1)
.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
.PageSetup.PrintArea = ""
End With
ActiveWindow.View = saveView
End Sub