|
发表于 2014-4-20 15:00
|
显示全部楼层
本楼为最佳答案
- Sub Macro1()
- On Error Resume Next
- Dim arr, d, i&
- Set d = CreateObject("scripting.dictionary")
- arr = Range("a3").CurrentRegion
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- For i = Sheets.Count To 1 Step -1
- If Sheets(i).Name <> "数据" Then Sheets(i).Delete
- Next
- For i = 2 To UBound(arr)
- If Not d.exists(arr(i, 2)) Then
- d(arr(i, 2)) = ""
- Sheet1.[b3].AutoFilter Field:=2, Criteria1:=arr(i, 2)
- With Sheets.Add(after:=Sheets(Sheets.Count))
- .Name = arr(i, 2)
- Sheet1.[a:d].Copy [a1]
- End With
- Sheet1.ShowAllData
- End If
- Next
- Sheet1.Activate
- [a3].AutoFilter
- Application.DisplayAlerts = True
- Application.ScreenUpdating = True
- End Sub
复制代码 |
|