Public Sub SplitData()
Dim lastrow As Long
Dim lastrow2 As Long
Dim nextrow As Long
Dim numrows As Long
Dim copyrows As Long
Dim remain As Long
Dim i As Long
Application.ScreenUpdating = False
With Worksheets("Sheet2")
lastrow2 = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
With Worksheets("Sheet1")
lastrow = .Cells(.Rows.Count, "B").End(xlUp).Row
numrows = lastrow2 \ (lastrow - 1)
remain = lastrow2 - (numrows * (lastrow - 1))
nextrow = 1
For i = 2 To lastrow
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = .Cells(i, "B").Value
copyrows = numrows + IIf(remain > 0, 1, 0)
remain = remain - 1
Worksheets("Sheet2").Rows(nextrow).Resize(copyrows).Copy ActiveSheet.Rows(1)
nextrow = nextrow + copyrows
Next i
End With
Application.ScreenUpdating = True
End Sub