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

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操作简单,但需要学习的东西很多。大家根据自己实际情况选择使用,觉得不错的话点赞吧!


,
    推荐阅读
  • 河北生产低压电缆的厂家(河北省电缆公司优秀企业推荐)

    电线电缆广泛应用于国民经济各个部门,是现代经济和社会正常运转的基础保障。河北省电缆公司优秀企业推荐,旨在促进电缆行业健康发展,提升国内电缆行业的品牌价值,目的是推动我国电缆公司的整体品质,整饬行业现状,加强行业口碑意识,并致力于为广大客户选择电缆公司与产品提供最权威的引导和帮助,从而节省客户大量的时间和精力。随着世界各国对环境保护的日益重视,安全和环保性能逐渐成为评价电线电缆产品性能的重要指标。

  • 紫薯加糯米粉做的美食(加点米粉做甜品)

    特别是对于小孩子来说,多吃紫薯也能提高它的免疫力和抵抗力。不过平时大家吃紫薯最常见的吃法就是直接清洗好了,上锅蒸,接下来呢,就给大家分享一下,怎么用紫薯换个花样做美食,你也一起来学一下吧,别错过。:1、粘米粉一般超市有售,这个也是大米打成的粉。

  • 天涯明月刀手游天赐节答题(天涯明月刀手游星运答题怎么选)

    天涯明月刀手游中玩家想要改变自己的星运,就要改变星运的各项数值,每周有三个问题可以更改星运的数值,那么这些问题的答案该怎么选择呢?

  • 国家明令禁止的71种食品添加剂(市场监管总局关于规范使用食品添加剂的指导意见)

    国家明令禁止的71种食品添加剂?六、各地市场监管部门应当督促食品生产经营者落实本意见提出的要求,严格按照本意见和食品添加剂使用标准使用食品添加剂,防止超范围超限量使用食品添加剂。

  • 励志的句子激励自己(励志的句子分享)

    成熟的种子总是将头颅朝向大地,我们也因为敬畏命运而深深低下我们的头。生命的路上,耐心使你获得力量,耐心使你认清方向;耐心使你坦途疾进,耐心使你少遭波浪。其实,人生舞台上人人都有可笑之处。拥有健康的体魄,在快乐的心境中做自己喜欢做的事情,安全地实现自身价值,这就是人生最大的幸福。在被动地生与死之间,种种美好的的愿望,让我们主动地去满足自己种种莫明其妙的反感,让我们去争取。

  • 女儿被亲了一口 爸爸的反应(爸爸舌吻女儿共同洗澡)

    女孩在节目中大吐苦水,称父亲对自己过度的肢体接触,吓的她不敢回家。因为父亲和女儿举止过于亲密,有时候还会引起误会。最后被证实与男子同行的两位成年人是男子的父母,女孩是男子父母的养女。无独有偶,在重庆某医院,也有网友拍下了类似的事情。女孩坐在男子的身上,男子的手伸进女孩的裤子里...后被证实该男子为女孩姑父。

  • 怎么办理公司执照(办理公司执照的方法)

    怎么办理公司执照万事开头难,做生意也一样。首先找好经营场所。提供身份证复印件,带上身份证去复印店复印即可。如果场地是租的,提供租赁合同复印件。带上材料,去当地工商局填写个体工商户开业登记申请书。确定组成形式,确定经营范围。预名,也就是确定公司的名称。工作人员会根据提供的名称核对,有个别字不能加入名称里,可以有三次修改机会,确定好名称。申请完成,等待工商局消息,核发营业执照。

  • 王者荣耀能快速恢复体力满信誉积分吗(信誉积分上限增长需要的时间越长)

    王者荣耀能快速恢复体力满信誉积分吗?我们一起去了解并探讨一下这个问题吧!王者荣耀能快速恢复体力满信誉积分吗如果在一段时间内参与排位赛、5v5匹配模式、巅峰赛的场次达到标准,并且表现非常好,没有违规行为,系统将会告知您的信誉积分上限增加,有助于恢复体力、信誉。信誉积分上限的增长是一个相当漫长的过程,而且随着信誉积分上限增长的越高,需要的时间也就越长。

  • 电话卡注销需要什么条件(电话卡需不需要注销)

    找人代办是需要提供本人的身份证原件以及委托办理书,同时要需要代办人出示身份证才能进行办理工作。为了下次可以办理手机卡及大额度的贷款,保持自己良好的信用记录,不用的手机卡还是尽快去办理注销。

  • 小智的皮卡丘最后怎么样了(小智的皮卡丘生过孩子)

    但是一次意外中,小智的脚被冻伤,为了尽早治愈便一人前往温泉地区治疗,为了完成调查洛奇亚的任务小智与女主小黄分头行事,而小智因为不想将刚刚相识相恋的皮卡丘与丘丘拆散,也就决定这次的调查不携带皮卡丘一同前往,而这也是皮卡丘第一次与小智分离超过24小时,当然这也是皮卡丘与丘丘孕育下一代的一个开端。