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

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


,
    推荐阅读
  • 给你推荐几款好看的穿越剧(公认口碑爆棚的五部穿越剧)

    就在那个年代,一部剧集带给我们的美好回忆和感动,所以我们愿意称《寻秦记》为经典,更多的是对那段逝去时光的怀念。除了以上五部“口碑爆棚”穿越剧,你是否还有其他类似剧集补充?

  • 国产车质量最好的是什么品牌(质量口碑最好的国产车有哪些)

    五菱洪光是一款家用和商用的MPV。得益于这些强大的加持,吉利在国内市场的影响力更是上了一层楼,而其约伯上市后,也因其良好的价值、充沛的动力和高安全性而迅速下线“大众炸鸡”。哈弗指导价:9.80-14.10万紧凑型SUV销量冠军哈弗H6。也是唯一能连续82个月蝉联销量冠军的自主产品。吉利帝豪基本上每个月都能进国产车销量榜前十。目前该车刚刚进行了大改款,整车外观看起来比老款要时尚美观很多。

  • 新生儿拉肚子症状(新生儿拉肚子症状表现)

    新生儿拉肚子症状轻型腹泻大便呈水样,且似蛋花汤样的水便分离,或呈黄色、黄绿色便。重型腹泻一日腹泻10次以上,全身症状较重。可有明显发热、体温不升及拒奶。另外宝宝常会出现哭闹、呕吐等情况。流行性腹泻主要出现于医院的婴儿房中,这是因为分娩时产道中的病菌传给了孩子,又经由护理人员传播开。每天排便次数能高达10次,并伴随有脱水的情况。

  • 圆周率的故事(和圆周率相关的故事)

    一次,父亲从书架上给他拿了一本《周髀算经》,这是一本西汉或更早的著名的数学书。在汉以前,中国一般用三作为圆周率数值,即“周三径一”。这在计算圆的周长和面积时,误差很大。这是当时世界上最精确的数值,他也成为世界上第一个把圆周率的准确数值计算到小数点以后第7位数字的人。直到1000多年后,这个纪录才被欧洲人打破。圆周率的计算,是祖冲之在数学上的一项杰出贡献,有外国数学史家把π叫做“祖率”。

  • 刻舟求剑出自寓言故事的词语(刻舟求剑成语故事)

    战国时,楚国有个人有一把宝剑,他十分爱惜,不论到什么地方,都带着这把宝剑。船行至江心,楚人一不小心,就把随身携带的宝剑滑落到江中,他赶紧伸手去抓,可惜为时已晚,宝剑已经落入江中。只见楚人也不着急,而是拿了一把小刀,在船舷上剑掉下去的地方,刻了一道深深的记号,并且自言自语道:“我的剑就是从这儿掉下去的!我要刻上一个记号。”船继续前行,待船靠岸后,那楚人站起身,在船上刻有记号的地方下水。

  • 秦组词和拼音(秦怎么组词)

    以下内容希望对你有帮助!秦组词和拼音秦艽[qínjiāo]又称“大叶龙胆”。龙胆科,多年生草本植物。根入药,有祛风湿、退虚热等作用。秦腔[qínqiāng]泛指北方用梆子腔演唱的剧种。秦篆[qínzhuàn]秦篆qínzhuàn见“小篆”。秦椒[qínjiāo]秦椒qínjiāo〈方〉∶细长的辣椒;即“花椒”。以产于秦地得名。

  • 艾滋病所说的高危行为是什么(艾滋病窗口期高危行为)

    它通过检测HIV病毒的DNA来确定感染与否,唯一的缺点就是贵。它同时检测P24抗原和HIV抗体。因此,自检阳性的患者都要去疾控中心进行确证试验。在感染前7天,病毒的数量还没有爆发,人体还没有产生抗体和病毒斗争。患者携带病毒,可能浑然不知。患者容易患上各种疾病,生命受到极大威胁。使用安全套和HIV阳性患者发生性行为而感染的几率,远低于没有保护措施发生性行为而感染的几率。只要连续服用28天,PEP能将HIV感染风险降低89%。

  • 干酪含量最高的奶酪棒(12款儿童奶酪棒测评)

    12款儿童奶酪棒测评花爸说:奶酪,是宝宝补充钙、蛋白质等营养素的奶制品之一之前花爸推荐的天然奶酪没有添加糖、添加剂,适合三岁以下的婴幼儿点击查看详情《宝宝奶酪测评:德国奶酪酵母超标500倍,还能吃吗?》但是天然奶酪中基本。

  • 万年青能水培吗,水培注意事项有哪些,附其水培方法

    水培营养液pH值为6.0至7.0,在瓶中高度不得超过根系高度的50%。

  • 抖音无网络是怎么回事 苹果手机抖音无网络是怎么回事

    抖音打开显示无网络的原因有:网络卡顿,当前使用的网络较差,或者操作频繁,系统受到了限制。