OK, tha's quite simple. We simply need to loop through the prime kt checking to see if it has changed and storing the end of the copied range each time. Something like this:
Sub CreateWorkBooks()
Dim intNumRows As Integer
Dim shtData As Worksheet
Dim i As Integer
Dim intStartRow As Integer
Const MyDir As String = "U:\"
Const NumColumns As Integer = 10
Set shtData = ThisWorkbook.Sheets(1)
intStartRow = 1
With shtData
intNumRows = .range("a1").CurrentRegion.Rows.Count
'loop through each row checking to see if row ahead has same prime key
For i = 1 To intNumRows
If .Cells(i + 1, 1) <> .Cells(i, 1) Then
.range(Cells(intStartRow, 1), Cells(i, NumColumns)).Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.Close savechanges:=True, Filename:=MyDir & .Cells(i, 1).Value
intStartRow = i + 1
End If
Next i
End With
End Sub