就这么简单!一键按职业拆分成多个多工作表、工作簿(完善版)
恭喜下面粉丝:维维、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)