excel将一个工作表根据条件拆分成多个工作表图文教程
excel将一个工作表根据条件拆分成多个工作表图文教程
发布时间:2016-12-23 来源:查字典编辑
摘要:本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表。注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第...

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

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

操作步骤:

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

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

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

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

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

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

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

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

复制内容到剪贴板 SubCFGZB() DimmyRangeAsVariant DimmyArray DimtitleRangeAsRange DimtitleAsString DimcolumnNumAsInteger myRange=Application.InputBox(prompt:="请选择标题行:",Type:=8) myArray=WorksheetFunction.Transpose(myRange) SettitleRange=Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”",Type:=8) title=titleRange.Value columnNum=titleRange.Column Application.ScreenUpdating=False Application.DisplayAlerts=False Dimi&,Myr&,Arr,num& Dimd,k Fori=Sheets.CountTo1Step-1 IfSheets(i).Name<>"数据源"Then Sheets(i).Delete EndIf Nexti Setd=CreateObject("Scripting.Dictionary") Myr=Worksheets("数据源").UsedRange.Rows.Count Arr=Worksheets("数据源").Range(Cells(2,columnNum),Cells(Myr,columnNum)) Fori=1ToUBound(Arr) d(Arr(i,1))="" Next k=d.keys Fori=0ToUBound(k) Setconn=CreateObject("adodb.connection") conn.Open"provider=microsoft.jet.oledb.4.0;extendedproperties=excel8.0;datasource="&ThisWorkbook.FullName Sql="select*from[数据源$]where"&title&"='"&k(i)&"'" Worksheets.Addafter:=Sheets(Sheets.Count) WithActiveSheet .Name=k(i) Fornum=1ToUBound(myArray) .Cells(1,num)=myArray(num,1) Nextnum .Range("A2").CopyFromRecordsetconn.Execute(Sql) EndWith Sheets(1).Select Sheets(1).Cells.Select Selection.Copy Worksheets(Sheets.Count).Activate ActiveSheet.Cells.Select Selection.PasteSpecialPaste:=xlPasteFormats,Operation:=xlNone,_ SkipBlanks:=False,Transpose:=False Application.CutCopyMode=False Nexti conn.Close Setconn=Nothing Application.DisplayAlerts=True Application.ScreenUpdating=True EndSub

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

5、如下图所示,插入一个控件按钮,并指定宏到刚才插入的模块代码。

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

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

6、点击插入的按钮控件,根据提示选择标题行和要拆分的列字段,本例选择“姓名”字段拆分,当然也可以选择C列的“名称”进行拆分,看实际需求。

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

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

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

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

7、代码运行完毕后在工作簿后面会出现很多工作表,每个工作表都是单独一个人的数据。具体如下图所示:

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

8、注意:

1)原始数据表要从第一行开始有数据,并且不能有合并单元格;

2)打开工作簿时需要开启宏,否则将无法运行代码。

以上就是excel将一个工作表根据条件拆分成多个工作表图文教程,希望能对大家有所帮助!

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新办公软件学习
热门办公软件学习
软件教程子分类