Yes, there is. Try this - you'll need to change the path.
Sub x()
Dim rng As Range
Application.DisplayAlerts = False
Application.ScreenUpdating = False
With Sheet1
Sheets.Add().Name = "temp"
Sheets.Add().Name = "temp2"
.Range("A1", .Range("A1").End(xlDown)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("temp").Range("A1"), Unique:=True
For Each rng In Sheets("temp").Range("A2", Sheets("temp").Range("A2").End(xlDown))
.AutoFilterMode = False
.Range("A1").AutoFilter field:=1, Criteria1:=rng
.AutoFilter.Range.Copy Sheets("temp2").Range("A1")
Sheets("temp2").Copy
' change path
ActiveWorkbook.Close SaveChanges:=True, Filename:="C:\VBA test\" & rng & ".xls"
Sheets("temp2").UsedRange.Clear
Next rng
.AutoFilterMode = False
Sheets("temp").Delete
Sheets("temp2").Delete
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Bookmarks