“排班表全自动的比公式复杂100倍” “不过,努力学也可能学会”

与 30万 读者一起学Excel

某学员要制作一份全自动的排版表,本来劝他半手工处理,因为这种需要用VBA。不过,他觉得自己努力学也可以学会,那就来吧。

排班表

模板,将模板的内容批量生成一周的表格,比如星期三,表头就引用排班表第一行的所有数据。

来看看VBA运行后效果。

原来排班表的内容分散到好多列,不方便引用,H列采用一个辅助列将内容合并起来。日期在合并的时候会变成数字,嵌套TEXT转换成日期格式。每天有好几个记录人,用TEXTJOIN合并起来并用、隔开。

=TEXT(A2,"e年m月d日    ")&B2&"    班级纪律检查情况记录   记录人:"&TEXTJOIN("、",1,C2:G2)

开发工具,VB,插入模板,输入代码。

Sub 排班()

Application.ScreenUpdating = False

Application.DisplayAlerts = False

'将多余的工作表删除

For X = Sheets.Count To 3 Step -1

Sheets(X).Delete

Next

With Sheets("排班表")

For X = 2 To .Cells(Rows.Count, 1).End(3).Row

'相当于移动或复制模板这个工作表到最后,并建立副本

Sheets("模板").Copy After:=Sheets(Sheets.Count)

'激活的工作表名称根据排班表的B列命名

ActiveSheet.Name = .Cells(X, 2)

'激活的工作表A1根据排班表的H列引用数据

[A1] = .Cells(X, 8)

Next

.Select

End With

Application.DisplayAlerts = True

Application.ScreenUpdating = True

End Sub

最后,使用VBA的,都需要启用所有宏。

VBA除了难,没啥缺点。

一次报名成为VIP会员,所有课程永久免费学,采用录制视频+微信答疑的形式学习,仅需888元,待你加入。

推荐:太牛X了!只用3分钟搞定8个小时的工作

上篇:为什么我的透视表老是出问题,一下子不能求和、一下子不能筛选、一下子不能排序。。。

你做过排班表吗,用什么方法?

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

(0)

相关推荐