肥宅钓鱼网
当前位置: 首页 钓鱼百科

excel拆分工作表代码如何写(有比这更快的Excel工作表拆分法吗)

时间:2023-07-19 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

位置选择现有工作表,单击确定。选择“数据透视表工具”下方“设计”选项卡里的“报表布局”下拉菜单的“以表格形式显示”。为了方便后续处理,把数据透视表修改成普通表格。这样就能批量对所有工作表进行统一操作。全选复制粘贴为值。删除前两行,再把日期这列列宽调整一下就完成了。

作者:夏雪 转自:excel教程

各位小伙伴有没有遇到过这样的问题:当我们把所有的信息汇总在一张表里后,又需要将这张大表按某一条件再拆分成多个工作表。那怎么才能实现呢?可能最笨的方法就是在原工作表筛选数据然后复制粘贴到新工作表,不过这种方法不适合数据多的案例,并且新工作表也需要一一重命名,显得繁琐。今天就给大家介绍两种快捷实用的工作表拆分方法。
如图,现在要把这个工作表的内容按城市拆分成多个工作表。


第1种:

极速拆分——VBA(文中提供有代码)

VBA是EXCEL处理大量重复工作最好用的工具。不过很多人对VBA一窍不通,所以今天给大家分享一段代码,并且详细解释了如何根据实际表格修改代码值,方便大家在工作中使用。

(1)按住Alt F11打开VBA编辑器,点击“插入”菜单下的“模块”。

(2)在右侧代码窗口输入下列代码。

Sub 拆分表()

Dim i, iRow, iCol, t, iNum As Integer, sh As Worksheet, str As String

Application.ScreenUpdating = False

With Worksheets("Sheet1")

iRow = .Range("A65535").End(xlUp).Row

iCol = .Range("IV1").End(xlToLeft).Column

t = 3

For i = 2 To iRow

str = .Cells(i, t).Value

On Error Resume Next

Set sh = Worksheets(str)

If Err.Number <> 0 Then

Set sh = Worksheets.Add(, Worksheets(Worksheets.Count))

sh.Name = str

End If


sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1, iCol).Value

iNum = sh.Range("A" & Rows.Count).End(xlUp).Row

sh.Range("A" & iNum1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value

Next i

End With

Application.ScreenUpdating = True

End Sub



代码解析:

这里用红色文字表示需要根据实际修改的代码参数;'用于表示注释,其后的文字并不影响代码的运行,只是用于说明代码的。这里特意用灰色表示注释文字。

Sub 拆分表 '文件名称,根据自己的文件名修改

Dim i, iRow, iCol, t, iNum As Integer, sh As Worksheet, str As String

Application.ScreenUpdating = False '关闭屏幕刷新

With Worksheets("Sheet1") '双引号内是工作簿名称,根据实际工作簿名称修改

iRow = .Range("A65535").End(xlUp).Row '从A列的最后一行开始向上获取工作表的行数,一般只改动Range中的列参数,如要工作表有效区域是从B列开始的,值就是B65535

iCol = .Range("IV1").End(xlToLeft).Column '从最后列(IV)第1行开始向左获取工作表的列数,一般只改动Range中的行参数,如要工作表有效区域是从第2行开始的,值就是IV2

t = 3 't为列数,设置依据哪一列进行拆分,譬如,如果是按E列拆分,这里就是t=5

For i = 2 To iRow 'i为行数,设置从第几行开始获取拆分值,要根据工作表实际改动

str = .Cells(i, t).Value '获取单元格(i, t)的值作为拆分后的表格名称

On Error Resume Next

Set sh = Worksheets(str) '创建以上述获取值为名的工作表

If Err.Number <> 0 Then '如果不存在这个工作表则添加一个并命名

Set sh = Worksheets.Add(, Worksheets(Worksheets.Count))

sh.Name = str

End If '如果存在这个工作表

sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1, iCol).Value '获取工作表标题,一般只改动Range的列值和Resize中的行值,譬如工作表的标题是从B列第3行开始的,则这句代码就变成 sh.Range("B1").Resize(3, iCol).Value = .Range("B1").Resize(3, iCol).Value'

iNum = sh.Range("A" & Rows.Count).End(xlUp).Row '一般只改Range中的列值,如工作表是从B列开始的,这里就变成Range("B" & Rows.Count).End(xlUp).Row

sh.Range("A" & iNum1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value

'在新表中粘贴工作表数据,一般只改动Range的列值,若工作表是从B列开始的,则就改成B变成Range("B" & iNum1).Resize(1, iCol).Value = .Range("B" & i).Resize(1, iCol).Value

Next i

End With

Application.ScreenUpdating = True '打开屏幕刷新

End Sub

(3)代码输入完成后,点击菜单栏里的“运行子过程”。这样工作表就拆分完成了。


完成如下:


通过这种方式一键完成工作表拆分了。


第2种:

常规拆分——数据透视表

数据透视表真的非常好用,它不仅在数据统计分析上拥有绝对的优势,而且利用筛选页也可以帮助我们实现拆分工作表的功能。步骤如下:

(1)选择数据源任一单元格,单击插入选项卡下的“数据透视表”。位置选择现有工作表,单击确定。

(2)把要拆分的字段“城市”放到筛选字段,“日期”“业务员”字段放在行字段,“销售额”放在值字段。

(3)修改数据透视表格式,便于在生成新工作表的时候形成表格格式。

选择“数据透视表工具”下方“设计”选项卡里的“报表布局”下拉菜单的“以表格形式显示”。

选择“数据透视表工具”下方“设计”选项卡里的“报表布局”下拉菜单的“重复所有项目标签”。

选择“数据透视表工具”下方“设计”选项卡里的“分类汇总”下拉菜单的“不显示分类汇总”。

完成结果如下:

(4)最后把透视表拆分到各个工作表。选择“数据透视表工具”下方“分析”选项卡“数据透视表”功能块里的“选项”下拉菜单的“显示报表筛选页”,选定要显示的报表筛选页字段为“城市”。

(5)为了方便后续处理,把数据透视表修改成普通表格。选择第一个工作表 “北京”,按住Shift,点击最后一个工作表“重庆”,形成工作表组。这样就能批量对所有工作表进行统一操作。

全选复制粘贴为值。


删除前两行,再把日期这列列宽调整一下就完成了。结果如下:

数据透视表这种方法比较容易上手,但是步骤比较多,而VBA操作简单,但需要学习的东西很多。大家根据自己实际情况选择使用,觉得不错的话点赞吧!


,
    推荐阅读
  • 马石油机油怎么样 马石油机油怎么样价格5W—30

    最终,经过筛选,获得本次活动大奖的32位卡友已经诞生,奖品陆续领取。这次面试的获胜者是来自黑龙江鸡西的鲍师傅。目前车辆已行驶超过56万公里。据鲍师傅介绍,由于平时在黑龙江省内运输,冬天气温可能会达到零下30度。宝师傅更换至今已使用25000多公里,正常行驶时油压为0.4MPa。包师傅表示不会严格按照推荐的使用年限更换机油,而是根据车辆的使用情况决定更换时间。目前这款车已经行驶了56万多公里,使用马石油佑安里时性能依然稳定。

  • 男性阴囊潮湿什么问题(男性阴囊潮湿危害大)

    男性阴囊潮湿的危害1、降低男性生精能力。阴囊潮湿久拖不治将导致睾丸硬化萎缩,易将病菌传染给配偶,引起新生儿畸形甚至造成配偶不孕。由于阴囊潮湿睾丸热度无法散发,影响了睾丸的精子精液男性荷尔蒙的生成,那么性生活质量会下降。阴囊潮湿的症状1、亚急性发作症状:为阴囊剧烈瘙痒,不思饮食,大便稀,小便黄,有时有水疱轻度糜烂。

  • 无锡动物园门票优惠一览(无锡动物园门票优惠政策)

    无锡动物园门票优惠政策序号优惠对象进园凭证游览范围收费标准170周岁以上老人本人高龄证、身份证动物园、阿熊乐园(不含游乐设备)免票2国家无偿献血贡献奖、无偿捐献造血干细胞奖、无偿献血志愿者服务终身荣誉奖获得者江苏省无偿献血荣誉证书和身份证动物园、阿熊乐园免票3残疾人本人残疾证动物园、阿熊乐园(不含游乐设备)免票4重度残疾人陪护人员被陪护人重度残疾证(两人同时入园)动物园、阿熊乐园(不含游乐设备)免

  • 夏韵散文50首(宋世国原创散文)

    人们沉浸在希望和快乐之中。大树更是精神抖擞,使劲摇晃着树冠,甩去清洗后的残留。人们无不被这清雅,质朴无华所折服。随风潜入夜,润物细无声,是对雨真实的评价。雨丝交织在一起。呈现在人们眼前的是,一串串无形的珠帘,一片片白色瀑布,雾气弥漫,整个空间好似海洋,令人胆战心惊。表现出对天公的不满。你警示人们,这是自然规律,是不可改变,只有提高防御能力,才能避免灾害发生。

  • 高压锅做酸奶的方法窍门(高压锅自制酸奶怎么做)

    接下来我们就一起去了解一下吧!高压锅做酸奶的方法窍门牛奶倒一盒进干净的奶锅里,加入白糖,边煮边搅,煮至微沸奶锅边冒小泡泡即可。起锅,把另一盒牛奶剪开倒入煮过的牛奶里,搅拌均匀,晾凉至微温,30-40度。电压力锅洗干净放水,水大概到保鲜盒里液体的位线就好,太高怕漫进盒里就不好了。把保鲜盒放进去,盖上锅盖。一直保温7-8小时即可。好了后放冰箱保鲜3小时以上钝化,更凝结口感更好。

  • 西安八大怪锅盖(陕西八大怪防疫嫽滴太)

    乡党们又快到一年一度的春节了在这个特殊的时期有人决定就地过年,有人选择踏上回乡之路无论在哪里,都请一定做好防疫措施共同努力,彼此保护我们一起,过个平安年!

  • 发生房屋租赁纠纷的处理方式有什么 房屋租赁发生纠纷找哪个部门

    当发生租房纠纷时,应该首先考虑以协商的形式解决纠纷。仲裁是公民、法人或其他组织之间发生合同纠纷或其他财产权益纠纷时向仲裁委员会申请解决纠纷的一种法定方式。若事先在合同没有约定,事后双方当事人又没有达成仲裁协议的,一方申请仲裁的,仲裁委员会将不予受理。仲裁具有司法行为的效力,一旦判决书生效,当事人不得再以同一纠纷向人民法院提起诉讼。租赁当事人违反相关规定,致使租赁合同无效的,应当依法承担民事责任。

  • 难忘的春节作文300字(怎么写难忘的春节作文)

    难忘的春节正文,我来为大家科普一下关于难忘的春节作文300字?难忘的春节作文300字难忘的春节正文春节,一年只有一次,每次都值得我回忆,但前年的春节最让我难以忘怀!前年的春节我是在姥姥家过的,姥姥家在安徽的一个小山村,那里过春节的感觉和在城里完全不一样。

  • 望梅止渴的典故(关于望梅止渴的典故)

    望梅止渴的典故东汉末年,曹操带兵打仗,在行军的路上遇到了很大的困难,那就是,荒原百里,没有水源,将士们都干渴难忍,有的体弱的士兵,都被干渴的晕倒了,曹操看到这样的情形觉得非常难办。于是,曹操就急步登上前面的山头,查看前方的状况,当登上山头的时候,曹操失望了,放眼望去,依然是没有人烟,哪来的水源,不过,一个灵机一动,曹操想到了办法。后来,他们终于到达了有水的地方,但是发现根本就没有梅子林。

  • 买四季座垫(别购买廉价座垫)

    一旦座椅被弄脏了,即使到专业的汽车美容店也难以清洗干净,所以铺设坐垫或者按安装座套就是保护座椅的选择,也是方便的一种方法。合适选择属于自己档次和在可以支付的预算内。要挑选合适的坐垫,还要与汽车有一定的匹配程度。不合适的汽车坐垫会影响车子整体形象的,还会降低车主品味。