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

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种雪球草)

    山里1种“雪球草”,外表不起眼,山民却见到就采,价值珍贵。这种雪球草它的学名叫做大丁草,是一种菊科植物,但它的种子非常的像蒲公英,是一个毛茸茸的雪球,经风一吹,种子就会传播开来,没开花结果之前,外表一点不起眼,但附近的山民们见到了就会采集,价值非常的珍贵,下面就给大家介绍一下这种植物。如果还知道它其他的珍贵价值,欢迎大家在下方评论留言,与其他读者朋友一起分享讨论。

  • 鞋子洗完怎么晾干 鞋子洗完怎么晾干不会有臭味

    用干鞋器快速干鞋之后鞋子会变得干爽舒适,同时也能起到除臭杀菌的作用。

  • 临夏居住证签注指南 居住证签注手续

    即将到期的临夏市居住证需要办理签注,在居住地的派出所即可申请办理,下面和小编一起来了解下详细的办理流程。办理条件居住证持有人在居住地连续居住的,应当在居住证到期之日前1个月之内,到居住地公安派出所或者受公安机关委托的社区服务机构办理签注手续。

  • 菜胆奶油鸡怎么做(做菜胆奶油鸡的步骤)

    菜胆奶油鸡怎么做?菜胆奶油鸡怎么做光鸡1只约500克、芥菜胆12条、洋葱1/2个、玉葱3条、大姜3片酒1/2茶匙、味粉1/2茶匙、糖1/2茶匙、盐1/2茶匙、牛油少许、鲜奶1杯、生粉1汤匙、蒸鸡汁1汤匙、上汤1/2杯。做法:先将光鸡洗净,将洋葱、玉葱、姜片全部切成碎粒,加调味粉拌匀,放入鸡肚内隔水蒸约20分钟,取出切成鸡块。将菜胆洗净,用上汤灼熟围在鸡边。最后将蒸鸡汁、鲜奶、生粉齐打芡淋上材料面即成。

  • 一直用表情包的人是什么人(它的表情包很多人在用)

    咬烂了袜子的小狗扒在衣柜上委屈又害怕的小眼神让人又爱又怜…但也有网友认为这样的质疑是想太多了狗狗看起来挺健康的这只是一种条件反射对此,你怎么看?

  • 姓杨的人为什么少(姓李的说木子李)

    那为什么很多人都会习惯性地补充说自己是木子李或者木易杨呢?杨意思就是说“李”是指树木的一种果实,以木字为边旁,子为声旁。所以如果有人说自己姓李,十八子的李,其实就是错误的,木子李,才是准确的说法。那么杨这个姓,也属于大姓,目前是我国的第六大姓,杨姓的总人口超过四千两百万。同时,我们也可以注意到,还有很多汉字都是从“昜”,比如三点水的汤、日字旁的暘、申字旁的畅,都是发ang的这个音。

  • 中职学校电竞技术(我校2022年职教周活动之电竞校际选拔赛圆满结束 )

    为响应省教育厅《关于做好2022年职业教育活动周相关工作的提示》,同时进一步丰富学生在校生活,提升学生竞技水平,引导学生正确对待电子竞技运动,培养高素质的专业技能人才,进一步提高学生的实践能力、就业能力、创新能力,5月12日下午,我校举办的以“荣耀青春,问鼎王者为主题的2022新华互联网电竞校际对抗赛贵阳校区选拔赛圆满落幕。从4月报名活动开始,经过1个多月的紧张备赛阶段,于5月12日下午,贵阳市新

  • 选购微波炉有哪些技巧 怎样选购家用微波炉

    外观容易感觉,内在质量较难知道,一般来说,制造工艺精良的,其内在质量也不错,好的微波炉美观大方、色彩匀称,产品表面无机械碰伤和擦伤,面板平整。

  • 汽车支撑架应该支撑哪里? 汽车支撑架应该支撑哪里

    汽车千斤顶放在汽车的工具箱里面,用于在更换备用轮胎时顶起车身。大多数硬派越野车的后悬架都会采用非独立悬架,而前悬架则采用独立悬架,以提高在铺装路面上的驾驶舒适性。这台发动机配备多点喷射技术,采用铝合金缸盖和缸体。与这台发动机匹配的是8at变速箱。使用8at变速箱可以提高汽车的换挡平顺性和燃油经济性。8at变速箱的可靠性和耐久性优于双离合变速箱。

  • 蒸布蒸馒头总是粘是怎么回事(蒸布蒸馒头总是粘的原因)

    蒸布蒸馒头总是粘是怎么回事?以下内容希望对你有帮助!蒸布蒸馒头总是粘是怎么回事蒸布蒸馒头总是粘是因为蒸馒头之前没有将蒸布沾水,导致蒸布干燥粘上了有水分的馒头。目前市场上的蒸布一般都是硅胶材质,这样的蒸布安全性和稳定性都比较高,要是没有专门的蒸布,可以使用传统的布垫或者是草垫,但是在使用之前要注意保护以及清洗。