自动生成全月排班表(排班表全自动的比公式复杂100倍)

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

自动生成全月排班表(排班表全自动的比公式复杂100倍)(1)

排班表

自动生成全月排班表(排班表全自动的比公式复杂100倍)(2)

自动生成全月排班表(排班表全自动的比公式复杂100倍)(3)

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

自动生成全月排班表(排班表全自动的比公式复杂100倍)(4)

来看看VBA运行后效果。

自动生成全月排班表(排班表全自动的比公式复杂100倍)(5)

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

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

自动生成全月排班表(排班表全自动的比公式复杂100倍)(6)

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

自动生成全月排班表(排班表全自动的比公式复杂100倍)(7)

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的,都需要启用所有宏。

自动生成全月排班表(排班表全自动的比公式复杂100倍)(8)

VBA除了难,没啥缺点。

来源:Excel不加班

自动生成全月排班表(排班表全自动的比公式复杂100倍)(9)

通知获取

1、下方评论区:领取,并转发收藏;

2、然后点击小编头像,找到私信功能、私我回复:【学习】,即可免费领取

自动生成全月排班表(排班表全自动的比公式复杂100倍)(10)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页