八亿电脑网
游戏盒子
当前位置: 首页 > Office之家 > Excel教程 >

excel将一个工作表根据条件拆分成多个工作表图文

时间:2015-01-15 15:31来源:网络 作者:Word 点击:
游戏盒子

下面的朋友介绍excel将一个工作表根据条件拆分成多个工作表的方法,对于经常使用excel的朋友很有帮助,推荐到,有需要的朋友可以过来参考一下,希望能对大家有所帮助

本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表。

注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为“数据源”,而不是你新建工作簿时的sheet1这种。手动改成“数据源”即可。

操作步骤:

原始数据表如下(名称为:数据源),需要根据B列人员姓名拆分成每个人一个工作表。

八亿PC

点击【开发工具】-【Visual Basic】或者Alt+F11的快捷键进入VBE编辑界面。

八亿PC

如下图所示插入一个新的模块。

八亿PC

八亿PC

如下图,粘贴下列代码在模块中:

复制内容到剪贴板
  1. SubCFGZB()
  2. DimmyRangeAsVariant
  3. DimmyArray
  4. DimtitleRangeAsRange
  5. DimtitleAsString
  6. DimcolumnNumAsInteger
  7. myRange=Application.InputBox(prompt:="请选择标题行:",Type:=8)
  8. myArray=WorksheetFunction.Transpose(myRange)
  9. SettitleRange=Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”",Type:=8)
  10. title=titleRange.Value
  11. columnNum=titleRange.Column
  12. Application.ScreenUpdating=False
  13. Application.DisplayAlerts=False
  14. Dimi&,Myr&,Arr,num&
  15. Dimd,k
  16. Fori=Sheets.CountTo1Step-1
  17. IfSheets(i).Name<>"数据源"Then
  18. Sheets(i).Delete
  19. EndIf
  20. Nexti
  21. Setd=CreateObject("Scripting.Dictionary")
  22. Myr=Worksheets("数据源").UsedRange.Rows.Count
  23. Arr=Worksheets("数据源").Range(Cells(2,columnNum),Cells(Myr,columnNum))
  24. Fori=1ToUBound(Arr)
  25. d(Arr(i,1))=""
  26. Next
  27. k=d.keys
  28. Fori=0ToUBound(k)
  29. Setconn=CreateObject("adodb.connection")
  30. conn.Open"provider=microsoft.jet.oledb.4.0;extendedpropertIEs=excel8.0;datasource="&ThisWorkbook.FullName
  31. Sql="select*from[数据源$]where"&title&"='"&k(i)&"'"
  32. Worksheets.Addafter:=Sheets(Sheets.Count)
  33. WithActiveSheet
  34. .Name=k(i)
  35. Fornum=1ToUBound(myArray)
本篇文章标签: Excel Excel教程 Excel技巧 Office WPS
发表评论
热点文章