分享

就这么简单!一键按职业拆分成多个多工作表、工作簿(完善版)

 Excel不加班 2020-12-03

恭喜下面粉丝:维维、Luo、白雪皑皑,获得书籍《Excel VBA跟卢子一起学 早做完,不加班》加卢子微信chenxilu2019,发送姓名电话地址。

今天的文章主要是对以前发过的教程进行完善,更符合个性化要求。

本来昨天的文章是将工资批量生成多个工作表,可能有部分粉丝还想将这些工作表另存为多个工作簿。

将工作表批量另存为工作簿,一个表大概1秒,25个大概25秒,操作动画我把中间等待的时间裁剪掉。

Sub 另存为工作簿()

Dim i As Integer

Application.ScreenUpdating = False

Application.DisplayAlerts = False

    For i = 3 To Sheets.Count

        ThisWorkbook.Sheets(i).Copy

        ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & ThisWorkbook.Sheets(i).Name

        ActiveWorkbook.Close

    Next

Application.DisplayAlerts = True

Application.ScreenUpdating = True

End Sub

部分代码含义:

Application.ScreenUpdating = False 关闭屏幕更新

Application.DisplayAlerts = False 关闭警告对话框

再来看另外一个案例,按职业拆分工作表,在拆分的时候,原有的这3个工作表不能删除掉。

对于这个,需要对原来的代码做简单的修改。

在VBA中,工作表名称有很多的表示方法。这里用最原始的Sheet1、Sheet2、Sheet8表示,具体的要看左边工作表名称的数字,而不是乱写。

    Rem 删除非要求的工作表

    For Each Sht In Worksheets

        If Sht.CodeName <> "Sheet1" And Sht.CodeName <> "Sheet2" And Sht.CodeName <> "Sheet8" Then Sht.Delete

    Next Sht

这一段的意思就是工作表不是Sheet1、Sheet2、Sheet8三个的就删除。

改完后,来看看效果。

当然,模板不管怎么改善,最后只能满足大多数人的需求,没办法满足所有人的需求。加入VIP会员,实际工作上有问题在群内提出,这边会尽最大的努力帮你解决。

提取码:hcy3

这边全部课程共计 1907.5 元,报名VIP会员,仅需 888 元,就可以学到全部课程。

推荐:多表、多工作簿合并拆分,随心所欲(完善版)

上篇:Excel一键生成2020年保密工资签收清单,快得不得了!


VBA看不懂没关系,平常记得将好用的模板收集起来,关键时刻能够找到模板,将内容放到模板里面运行就好。

当然能够修改里面的部分代码为自己所用那就再好不过,不会修改也没关系,平常多录制宏,录制完后也会生成一些代码,借用这些代码。

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多