|
本帖最后由 orr89 于 2020-2-26 15:33 编辑
Sub 分表()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim dic
Set dic = CreateObject("scripting.dictionary")
arr = Range("a1").CurrentRegion
For a = 2 To UBound(arr)
If Not dic.exists(arr(a, 1)) Then
dic(arr(a, 1)) = a
Else
dic(arr(a, 1)) = dic(arr(a, 1)) & "@" & a
End If
Next
现在有几个表 = Sheets.Count
If 现在有几个表 > 1 Then
For a = 现在有几个表 To 2 Step -1
Worksheets(a).Delete
Next
End If
For a = 1 To dic.Count
那些行 = Split(dic.items()(a - 1), "@")
For b = 0 To UBound(那些行)
Set Rng = Range(Cells(那些行(b), "a"), Cells(那些行(b), "l"))
n = n + 1
If n = 1 Then Set rngs = Rng Else Set rngs = Union(rngs, Rng)
Next
Sheets.Add after:=Worksheets(a)
ActiveSheet.Name = dic.keys()(a - 1)
Sheet1.Activate
rngs.Copy
Sheets(dic.keys()(a - 1)).Activate
[a1].Resize(1, 10) = Array("车型", "卡号", "入场日期", "出场日期", "维修分类", "维修场地", "班组", "报修内容", "维修经过", "完工总时间", "主修人", "检验员")
Range("a2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False
n = 0: Set Rng = Nothing: Set rngs = Nothing: Sheet1.Activate
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
仅供参考
|
|