vba
Option Explicit
Sub 拆分()
Dim arr, dic As Object, i%, k, rng As Range, wb As Workbook
arr = Range("a1").CurrentRegion.Value
Set dic = CreateObject("scripting.dictionary")
For i = 2 To UBound(arr)
dic(arr(i, 1)) = ""
Next i
Application.ScreenUpdating = False
For Each k In dic.keys
ActiveSheet.AutoFilterMode = False
Range("a1").AutoFilter 1, k
Set rng = Range("A1").CurrentRegion
Set wb = Workbooks.Add
rng.Copy wb.Sheets(1).Range("a1")
wb.SaveAs ThisWorkbook.Path & "\" & k
wb.Close
Next k
Application.ScreenUpdating = True
MsgBox "拆分完成!"
End Sub
Option Explicit
Sub 拆分()
Dim arr, dic As Object, i%, k, rng As Range, wb As Workbook
arr = Range("a1").CurrentRegion.Value
Set dic = CreateObject("scripting.dictionary")
For i = 2 To UBound(arr)
dic(arr(i, 1)) = ""
Next i
Application.ScreenUpdating = False
For Each k In dic.keys
ActiveSheet.AutoFilterMode = False
Range("a1").AutoFilter 1, k
Set rng = Range("A1").CurrentRegion
Set wb = Workbooks.Add
rng.Copy wb.Sheets(1).Range("a1")
wb.SaveAs ThisWorkbook.Path & "\" & k
wb.Close
Next k
Application.ScreenUpdating = True
MsgBox "拆分完成!"
End Sub