某学员要制作一份全自动的排版表,本来劝他半手工处理,因为这种需要用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除了难,没啥缺点。
来源:Excel不加班
通知获取
1、下方评论区:领取,并转发收藏;
2、然后点击小编头像,找到私信功能、私我回复:【学习】,即可免费领取
,