excel表格如何自动分类拆分成多个数据薄
的有关信息介绍如下:问题补充说明:我想在有有一份总表 表头为 班级 姓名 社团 社长 上课地点 我需要将总表分别按 社团 班级 自动拆分成两种表格 既一种为 将同一社团的拆分成一个表格 另一种为 将同一班级的拆分为一个表格 并且我在总表中每个社团人员的改动(增加减少... 我想在有有一份总表 表头为 班级 姓名 社团 社长 上课地点 我需要将总表分别按 社团 班级 自动拆分成两种表格 既一种为 将同一社团的拆分成一个表格 另一种为 将同一班级的拆分为一个表格并且我在总表中每个社团人员的改动(增加减少等)或班级学生所报社团的改动 在分表上也要自动更改是否可以实现? 要用什么函数 望各位高手指点 急球 简单原始的复制粘贴就算了 我要简单的方法 展开
1.原始数据表如下(名称为:数据源),需要根据B列人员姓名拆分成每个人一个工作表。
2.点击【开发工具】省若-【Visual练待状事因机Basic】或者Alt+F11的快捷键进入VBE编辑界面。
3.如下图所示插入一个新的模块。
4.如下图,粘贴下列代码在模国友色燃帮六劳括与块中:
SubCF老事与女包看京游GZB()
DimmyRangeAsVariant
DimmyArray
DimtitleRangeAsRange
DimtitleAsString
Di沉粮过频千正活mcolumnNumAsInteger
myRange=***.inputbox(prompt:="请选择标题行:",Type:=8)
myArray=***.transpose(myRange)
SettitleRange=***.inputbox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”",Type:=8)
title=***.value
columnNum积获谈发玉=***.colu等确mn
***.scree攻操铁呀节种服nupdating=False
*既补府革特**.displayalerts=False
Dimi&,Myr&,Arr,num&
Dimd,k
For千i=***.countTo1Step-1
IfSheets(i).Nam香e<>"数据源"Then
Sheets(i).Delete
EndIf
Nexti
Setd=CreateObject("***.dictionary")
Myr=Work存重更奏样孩婷任sheets("数据源").usedra总源跳nge.***.count
Arr=Wo深功没入洲乎叶rksheets("数据源").Range(Cells(2,column认到Num),Cells(Myr,columnNum))
Fori=1ToUBound(Arr)
d(Arr(i,1))=""
Next
k=***.keys
Fori=0ToUBound(k)
Setconn=CreateObject("***.connection")
***.open"provider=microsoft.***.oledb.4.0;有货影必述施带extendedproperties=excel8.0;d副希时套计atasource="&***.fullname
S仍ql="select*from[数据源$]where"&title&"='"&k(i)&"'"
***.addafter:=Sheets(***.count)
WithActiveSheet
.Name=k(i)
Fornum=1ToUBound(myArray)
.Cells(1,num)=myArray(num,1)
Nextnum
.Range("A2").CopyFromRecordset***.execute(Sql)
EndWith
Sheets(1).Select
Sheets(1).***.select
***.copy
Worksheets(***.count).Activate
activesheet.***.select
***.pastespecialPaste:=xlPasteFormats,Operation:=xlNone,_
SkipBlanks:=False,Transpose:=False
***.cutcopymode=False
Nexti
***.close
Setconn=Nothing
***.displayalerts=True
***.screenupdating=True
EndSub
5.如下图所示,插入一个控件按钮,并指定宏到刚才插入的模块代码。
6.点击插入的按钮控件,根据提示选择标题行和要拆分的列字段,本例选择“姓名”字段拆分,当然也可以选择C列的“名称”进行拆分,看实际需求。
7.代码运行完毕后在工作簿后面会出现很多工作表,每个工作表都是单独一个人的数据。具体如下图所示: