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

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


,
    推荐阅读
  • 热门游戏解析(开局即崩盘的游戏)

    《了不起的修仙模拟器》《修仙模拟器》的故事更像是遭遇了一场突如其来的灾难,而不是挽大厦于将倾。这款出自国内GSQ工作室的模拟经营游戏在发售之初就深陷差评的泥潭,因涉嫌抄袭《环世界》,游戏在steam上的好评率一度跌至45%。游戏在steam平台遇到大量无实质内容的差评而游戏发售后的第三个月,修仙模拟器在Steam的整体好评率提高到了61%,一年多过去,游戏以近八千篇、82%的好评率成为难得的国产热销单机。

  • 地砖水泥沙子用量计算(教你计算水泥沙子)

    跟着小编一起来看一看吧!,砂浆采用1:3配比。砂浆含量为0.265m3/m3砌240墙,一共是6立方砖,需红砖4000块。即实际需要3200块砖,或者用128×25=3200也能得出这个数值。128块/平米为经验值,像老泥工都是直接用这个数值来计算的。或者一袋水泥,二袋沙子,可抹4平米。具体的你自己算吧~~~4最省事的算法其实,最省事的算法就是让瓦工替我们算,这个就不用讲了!

  • 蜂蜜的正确保存方法(蜂蜜的保存方法介绍)

    下面希望有你要的答案,我们一起来看看吧!蜂蜜的正确保存方法蜂蜜保存宜放在低温避光处,最好放入冰箱内低温保存,不宜阳光直射,通常保质期为18个月。由于蜂蜜是属于弱酸性的液体,能与金属起化学反应,在贮存过程中接触到铅、锌、铁等金属后,会发生化学反应。因此,应采用非金属容器如陶瓷、玻璃瓶、无毒塑料桶等容器来贮存蜂蜜。蜂蜜在贮存过程中应防止串味、吸湿、发酵等。

  • 家庭急救包有哪些物品(快来看看)

    家庭急救包有哪些物品酒精棉:急救前用来给双手或钳子等工具消毒。基于卫生要求,最好选择独立的小包装或中型瓶装的。袋装面罩或人工呼吸面膜:施以人工呼吸时,防止感染。

  • 汕头市新冠疫苗接种预约系统(汕头新冠疫苗怎么网上预约)

    ②在主页选择接种人群,普通人选择“内地居民新冠疫苗接种预约”。⑤选择完区县后,可查看到当前区域内接种门诊的信息,选择显示可预约状态下的接种门诊,点击右侧“选择”,进入页面后选择时间段即可。②绑定成人信息,选择接种单位,这里需要自己输入,可以输入家附近的接种点名称。全部输入好之后确认添加,根据提示操作预约。

  • 蚕丝被用过后变黄怎么办(蚕丝发黄了怎么办)

    洗的话,洗被套就可以了,蚕丝被本身是不能水洗的。真要是家里有小孩尿床什么的话,先把蚕丝被放在阴凉的地方晾晒一下,等到干了后还觉得有异味或者是有印记,可以拿到店里让店员给你翻新一下就好了。

  • 匡衡凿壁偷光介绍(典故讲解)

    匡衡凿壁偷光介绍典故介绍:汉朝时,少年时的匡衡,非常勤奋好学。匡衡心痛这浪费的时间,内心非常痛苦。匡衡听后非常气愤,不过他更下定决心,一定要把书读好。匡衡读完这些书,深感自己所掌握的知识是远远不够的,他想继续看多一些书的愿望更加迫切了。一天,匡衡卷着铺盖出现在大户人家门前。主人被他的精神所感动,答应了他借书的要求。

  • 季冠霖回应周冬雨配音出戏说了什么 季冠霖给所有人配音一个味

    《千古玦尘》自播出以来,周冬雨在剧中的演技与形象就备受质疑,如今,更是有不少网友指出剧中周冬雨的配音很出戏。季冠霖回应周冬雨配音出戏说了什么近日,有网友认为周冬雨在《千古玦尘》中的配音很容易出戏。季冠霖老师的配音对于周冬雨饰演的角色,可能一开始有些人不适应,但是也有很多人觉得非常贴合,上古这个角色也不是一直活泼可爱,后面也是沉稳的。

  • 哪个牌子的粉饼好用又不容易掉(口碑超好的九款粉饼)

    哪个牌子的粉饼好用又不容易掉超人气九大粉饼,给你细腻柔滑,光亮轻盈的完美肤色。就算气候干燥的秋冬季节,也滋润上妆不卡粉。赶紧马住吧~1.Lancome奇迹光彩粉饼Lancome(兰蔻)拥有世界领先的“wetprocesstechnology”粉饼制作成型技术,仅用普通粉饼成型压力的十分之一进行压制,充分保留粉饼内的有效成分。这款粉饼曾摘得“粉底女王”的桂冠,质感十分轻薄柔润,上妆十分服帖,使用起来不拔干且有乳霜般的滋润效果;透气不油腻,妆感十分自然,是Lancome粉饼的首选。

  • 简短有意义的个性签名(一些短而有意义的个性签名)

    下面希望有你要的答案,我们一起来看看吧!简短有意义的个性签名不论你在什么时候结束,重要的是结束之后就不要悔恨。不要为了一无所有的拥有,放弃曾经拥有的所有。当世界给草籽重压时,它总会用自己的方法破土而出。当天空黑暗到一定程度,星辰就会熠熠闪光。当一个人谁都不爱的时候,他就会爱上身边的任何一个人。风起的早晨,我在窗前念你;花开的时节,我在溪边等你。