I stole a bunch of code from Tom Ogilvy's post:
http://groups.google.com/groups?threadm=ufpc9nulCHA.1568@tkmsftngp07
I modified it to only care about horizontal page breaks, but you could modify it
to include the vertical page breaks, too.
Option Explicit
Sub testme01()
Dim HorzPBArray()
Dim curWks As Worksheet
Dim newWks As Worksheet
Dim TopRow As Long
Dim i As Long
Set curWks = ActiveSheet
curWks.DisplayPageBreaks = False
ThisWorkbook.Names.Add Name:="hzPB", _
RefersToR1C1:="=GET.DOCUMENT(64,""" & _
ActiveSheet.Name & """)"
ThisWorkbook.Names.Add Name:="vPB", _
RefersToR1C1:="=GET.DOCUMENT(65,""" & _
ActiveSheet.Name & """)"
i = 1
While Not IsError(Evaluate("Index(hzPB," & i & ")"))
ReDim Preserve HorzPBArray(1 To i)
HorzPBArray(i) = Evaluate("Index(hzPB," & i & ")")
i = i + 1
Wend
ReDim Preserve HorzPBArray(1 To i - 1)
Set newWks = Workbooks.Add(1).Worksheets(1)
TopRow = 1
For i = LBound(HorzPBArray) To UBound(HorzPBArray)
newWks.Cells.Clear
curWks.Rows(TopRow & ":" & HorzPBArray(i) - 1).Copy _
Destination:=newWks.Range("a1")
newWks.Parent.SaveAs Filename:="C:\WINDOWS\TEMP\" & "Page" & i, _
FileFormat:=xlWorkbookNormal
TopRow = HorzPBArray(i)
Next i
newWks.Parent.Close savechanges:=False
End Sub