|
|
- Sub ykcbf() '//2025.3.21 多表拆分为多工作簿多表
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- Set d = CreateObject("Scripting.Dictionary")
- Dim tm: tm = Timer
- Set ws = ThisWorkbook
- p = ThisWorkbook.Path & "\拆分"
- xm = "一键拆分"
- On Error Resume Next
- bt = 1
- For Each sht In ws.Sheets
- If sht.Name <> xm Then
- With sht
- arr = .UsedRange
- col = .Rows(bt).Find("单位名称").Column
- End With
- For i = bt + 1 To UBound(arr)
- If arr(i, col) <> Empty Then d(arr(i, col)) = ""
- Next
- End If
- Next
- For Each k In d.keys
- ws.Sheets.Copy
- Set wb = ActiveWorkbook
- For Each sht In wb.Sheets
- If sht.Name <> xm Then
- With sht
- If .FilterMode = True Then .FilterMode = False
- arr = .UsedRange
- col = .Rows(bt).Find("单位名称").Column
- .Rows(bt).AutoFilter Field:=col, Criteria1:="<>*" & k & "*"
- .UsedRange.Offset(bt).Delete
- .AutoFilterMode = False '//取消筛选状态
- End With
- End If
- Next
- wb.SaveAs p & k
- wb.Close
- Next
- Application.ScreenUpdating = True
- Application.DisplayAlerts = True
- MsgBox "共用时:" & Format(Timer - tm, "0.000") & "秒!"
- End Sub
复制代码
|
评分
-
2
查看全部评分
-
|