Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3959|回复: 3

[已解决]求工作簿中总表拆分多工作表VBA代码

[复制链接]
发表于 2013-5-9 22:17 | 显示全部楼层 |阅读模式
求工作簿中总表拆分多工作表VBA代码,要求在附件中,非常感谢!
最佳答案
2013-5-9 23:47
  1. Sub 拆分()
  2.     Dim arr, i As Long, key1
  3.     Dim objDic As Object

  4.     Application.ScreenUpdating = False
  5.     Application.DisplayAlerts = False
  6.     Application.EnableEvents = False

  7.     On Error Resume Next
  8.     arr = Range("a1").CurrentRegion
  9.     Set objDic = CreateObject("scripting.dictionary")

  10.     For i = LBound(arr) + 1 To UBound(arr)
  11.         objDic(arr(i, 4)) = ""
  12.     Next
  13.     With Worksheets("总表")
  14.         For Each key1 In objDic.keys
  15.             .Range("a1").AutoFilter 4, key1
  16.             If Len(Worksheets(key1).Name) = 0 Then
  17.                 Worksheets.Add after:=Worksheets(Worksheets.Count)
  18.                 ActiveSheet.Name = key1
  19.             End If
  20.             .Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Worksheets(key1).Range("a1")
  21.         Next
  22.         .Range("a1").AutoFilter
  23.         .Activate
  24.     End With
  25.     Application.ScreenUpdating = True
  26.     Application.DisplayAlerts = True
  27.     Application.EnableEvents = True
  28.     MsgBox "表格拆分完成", vbInformation
  29. End Sub
复制代码

求工作簿中总表拆分多工作表VBA代码.rar

10.16 KB, 下载次数: 59

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-5-9 23:47 | 显示全部楼层    本楼为最佳答案   
  1. Sub 拆分()
  2.     Dim arr, i As Long, key1
  3.     Dim objDic As Object

  4.     Application.ScreenUpdating = False
  5.     Application.DisplayAlerts = False
  6.     Application.EnableEvents = False

  7.     On Error Resume Next
  8.     arr = Range("a1").CurrentRegion
  9.     Set objDic = CreateObject("scripting.dictionary")

  10.     For i = LBound(arr) + 1 To UBound(arr)
  11.         objDic(arr(i, 4)) = ""
  12.     Next
  13.     With Worksheets("总表")
  14.         For Each key1 In objDic.keys
  15.             .Range("a1").AutoFilter 4, key1
  16.             If Len(Worksheets(key1).Name) = 0 Then
  17.                 Worksheets.Add after:=Worksheets(Worksheets.Count)
  18.                 ActiveSheet.Name = key1
  19.             End If
  20.             .Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Worksheets(key1).Range("a1")
  21.         Next
  22.         .Range("a1").AutoFilter
  23.         .Activate
  24.     End With
  25.     Application.ScreenUpdating = True
  26.     Application.DisplayAlerts = True
  27.     Application.EnableEvents = True
  28.     MsgBox "表格拆分完成", vbInformation
  29. End Sub
复制代码

评分

参与人数 1 +6 收起 理由
ligh1298 + 6 优秀作品,感谢老班!学习了!

查看全部评分

回复

使用道具 举报

发表于 2013-5-9 23:49 | 显示全部楼层
插入模块,粘贴代码,指定按钮的宏为拆分。
回复

使用道具 举报

发表于 2013-8-19 19:04 | 显示全部楼层
好用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 05:54 , Processed in 0.292400 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表