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

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节,牛奶200g,蜂蜜适量。淮山山药上锅蒸熟。蒸熟的淮山取出后去皮。将山药和牛奶放入料理杯中。开动料理机,一个高速程序即可。向料理杯中加入蜂蜜,调节口味,搅拌均匀。倒入杯中,即可食用。

  • 2021桂林经济适用房申购需要什么条件(桂林经济适用房申请条件2021)

    一、桂林经济适用房申购条件1、具有本市城镇常住户口,或在本市居住工作连续三年以上(含三年)的外来务工人员;2、已婚家庭或年龄在25周岁及以上单身家庭〔含离异(或丧偶)带未成年子女且拥有监护权的家庭〕;3、无房或现住房建筑面积未达到人均16平方米(含);4、家庭年人均收入低于市统计局向社会公布的上年度本市城镇居民人均可支配收入的90%。

  • 儒学思想形成完整的体系的标志(儒学有哪些派别)

    子张终身未仕,孔子死后,居陈国,收徒讲学。子张的弟子以后即成“子张之儒”,被列为战国儒家八派之首。其学派的最主要特点就是安贫乐道,重在下功夫实践孔子的仁德思想。司马迁在《史记·孟子荀卿列传》明确说孟子“受业于子思门人”。据郭沫若推测,“乐正氏之儒”或即孟子弟子乐正克,因此当属“孟氏之儒”一系。

  • 尢怎么读(尢的意思)

    下面希望有你要的答案,我们一起来看看吧!象春艸木冤曲而出是乙之范式。从大,以一腿跛曲为其象形。手足跛曲带疾异于常人者是尢之范式。

  • 关于心理健康的资料(什么是心理健康)

    关于心理健康的资料心理健康是指心理的各个方面及活动过程处于一种良好或正常的状态。受到遗传和环境的双重影响,尤其是幼年时期的原生家庭的教养方式,对心理健康的发展影响甚大。个体能够适应发展着的环境,具有完善的个性特征;且其认知,情绪反应,意志行为处于积极状态,并能保持正常的调控能力。在生活实践中,能够正确认识自我,自觉控制自己,正确对待外界影响,从而使心理保持平衡协调,就已具备了心理健康的基本特征。

  • 做宠物用品的上市公司(宠物护理用品龙头)

    我们一起去了解并探讨一下这个问题吧!做宠物用品的上市公司

  • 如何做更好的自己(怎样才能做更好的自己)

    每一天都会发生意想不到的事情,所以,我们想要达成的目标,就要提前去合理安排好自己的时间。因为一天的24小时,会被各种大小事情耽搁,只有合理安排好自己的时间,每天固定时间写经验,才能坚持一百天不断更。学会接纳现在的自己。根据自己的工作和学习状态,去寻找更多与之相关的书籍。定好的读书计划,或者其他事情,一定要马上开始,只有马上开始,才能延续当初的激情。

  • 幼儿诗歌有哪些特点(幼儿诗歌的特点介绍)

    形象性对儿童进行教育要借助各种各样的生动形象;儿童年龄越小,越依赖于形象化的手段要求和戏剧一样富于动作性,更多的以动作来表现人物的性格和心理活动儿童诗需要更的“比”、“兴”,以加强形象性儿童文学作品的语言要有声有色,娓娓动听,我来为大家讲解一下关于幼儿诗歌有哪些特点?儿童诗需要更的“比”、“兴”,以加强形象性。它的主人公不一定都是人,也可以使其他动物、植物,甚至无生物。

  • 最受欢迎快手昵称大全(快手昵称好听的名字推荐)

    记忆论执念捻,我来为大家讲解一下关于最受欢迎快手昵称大全?跟着小编一起来看一看吧!最受欢迎快手昵称大全记忆论执念捻旺论坛于慈新唯美风罗静晨红颜改将顾晨青春期羽月希意蕴新云飞燕秋良庄盖申秋青云湖邱碧兰离别恨相思豆枕边书浔花涧汀南雪绿萝烟浮世歌雾添花六绛铃岚荼盛陌浮生伤往昔七墓凉梦冥光映萧羽无话谈冷青

  • 小年文案简短有创意(简短有创意的小年祝福文案)

    小年文案简短有创意小年快乐,有你便快乐。小年来到喜庆高,家家户户忙打扫。小年来到忙送礼,送礼要送祝福语,一角小钱很便宜,朋友收到笑嘻嘻。小年祝愿朋友用心经营生活,快乐开心无限好!小年到,除旧迎新,祭灶王,身体劳累心欢畅。小年到来笑纷纷,胶牙糖甜醉灶神。大年渐近,小年先到,家家户户真热闹!小年冷,你也记着放牙齿出来遛遛,找点乐子。小年短,你也记着存情意悠长久远,滋润心田。