怎样把Excel中页上的数据分类到不同的sheet
1个回答
关注
展开全部
考虑总表数据量一般比较大,为节约时间,使用两个vba程序来实现
第一步:使用关键列(即用哪列数据来分类数据)建立不同的sheet工作表并命名
第二步:将总表数据按关键列自动分类
2/10
第一步中:
若总表数据关键列数据重复较多,可以先透视总表数据,将关键列数据剔除重复数据,然后复制到一个单独的工作表,在去建立不同的sheet工作表。
咨询记录 · 回答于2021-10-12
怎样把Excel中页上的数据分类到不同的sheet
考虑总表数据量一般比较大,为节约时间,使用两个vba程序来实现
第一步:使用关键列(即用哪列数据来分类数据)建立不同的sheet工作表并命名
第二步:将总表数据按关键列自动分类
2/10
第一步中:
若总表数据关键列数据重复较多,可以先透视总表数据,将关键列数据剔除重复数据,然后复制到一个单独的工作表,在去建立不同的sheet工作表。
如果总表数据带有标题,在完成第一步的时候最好也将标题加上,将以下代码加入到循环体中:st.Range("G1").Resize(2, 4).Copy ActiveSheet.Range("A1")注解:range("G1"):以G1列为起点;resize(2,4)为扩展2行,4列,这个根据你标题数据所在位置决定,可以自行更改。
执行代码,完成带标题的工作表的建立
第二步:分类数据。新增一个模块,将以下代码复制进去,参数可以灵活运用。Sub fendata()'分类数据 将汇总数据分类到不同的工作表中Dim b As Integer, nn As String, rng As Range '定义变量b = 3 '初始值,从第3行数据开始(标题占了2行)nn = ActiveSheet.Cells(b, "A").Value ' 获取当前工作表,也就是“神山数据总表”A列数据的名称,初始值为A3,赋值给nnDo While nn > "" '循环条件 若nn的值不为空(即关键列,A列数据不为空)Set rng = Worksheets(nn).Range("A100000").End(xlUp).Offset(1, 0)'动态定位nn工作表的空单元格; range("A100000")即单元格A100000;end(xlup):根据A100000 向上end得到A2(向上得到不为空的单元格,这里为A2)'offset(1,0) 以不为空的单元格为起点移动1行,0列,这里得到A3.执行循环时,每次就不一样ActiveSheet.Cells(b, "A").Resize(1, 4).Copy rng '将当前数据整行拷贝到新的单元格中b = b + 1 '行加1nn = Cells(b, "A").Value '同时将nn往下寻找LoopEnd Sub
新增一个按钮,将分类数据的宏和按钮关联起来。点开发工具--插入,选择按钮工具,左键按住不动,拖曳出一个按钮来。
右键点击按钮,选择指定宏
关联宏,并点击确定。
点击按钮,可以看到已自动将神山数据总表的数据分类到各个新建的工作表中了。
很高兴为您解答,请问还有什么需要可以帮到您吗?如果您觉得对您有帮助的话,请辛苦点一下赞哦!希望可以帮到您,祝您生活愉快!
已赞过
评论
收起
你对这个回答的评价是?