You're going to have a lot of workbooks! It'll be a major drain on storage and memory. However, try the following code placed in a standard module and assigned to a button:-
Dim dic As Object, rng As Range, wks As Worksheet, mypath As String, lr As Long
Set dic = CreateObject("scripting.dictionary")
Set wks = Sheet1
mypath = ThisWorkbook.Path & "\"
lr = wks.Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
For nrow = lr To 2 Step -1
If (Not dic.exists(.Cells(nrow, "A").Value)) Then
dic.Add .Cells(nrow, "A").Value, .Cells(nrow, "A").Value
Set rng = .Range("A1:N" & .Cells(Rows.Count, 1).End(xlUp).Row)
rng.AutoFilter field:=1, Criteria1:=.Range("A" & nrow).Value
ActiveWorkbook.SaveAs Filename:=mypath & .Range("A" & nrow).Value & ".xlsx"
.AutoFilterMode = False
MsgBox "Done!", vbExclamation
Application.CutCopyMode = False
Application.ScreenUpdating = True
The code should create new workbooks with the relevant data in sheet1 of each workbook. The new workbooks will be saved to to the same file as the source workbook.
You may have to change the range in line 19 of the code to suit the columns that you have in your source workbook.
I hope that this helps.