|
发表于 2016-6-19 22:01
|
显示全部楼层
本楼为最佳答案
执行代码后会在当前工作簿所在的路径下生产相应的工作簿:- Sub xx()
- Dim d, arr, i&, j&, s$, wb As Workbook
- Set d = CreateObject("Scripting.Dictionary")
- For i = 1 To ThisWorkbook.Sheets.Count
- s = Mid(Sheets(i).Name, 9, 2)
- If s <> "" Then
- If d.Exists(s) Then
- d(s) = d(s) & ";" & Sheets(i).Name
- Else
- d.Add s, Sheets(i).Name
- End If
- End If
- Next
- Application.ScreenUpdating = False
- For Each k In d.Keys
- If InStr(d(k), ";") > 0 Then
- arr = Split(d(k), ";")
- Set wb = Workbooks.Add
- For i = 0 To UBound(arr)
- ThisWorkbook.Sheets(arr(i)).Copy wb.Sheets(i + 1)
- Next
- wb.SaveAs ThisWorkbook.Path & "" & k & ".xlsx"
- wb.Close
- End If
- Next
- Application.ScreenUpdating = True
- End Sub
复制代码 |
|