Excel一键生成2020年保密工资签收清单,快得不得了!
为了活跃气氛,从留言区随机抽取3名赠送书籍《Excel VBA跟卢子一起学 早做完,不加班》。
VIP学员的问题,要根据原始数据,按照最终形式这个模板,批量生成每个人1-10月的总工资,一个人一个工作表。
原始数据

最终形式,只引用姓名、1-10月保密工资两个内容。

对于这种可以使用Word邮件合并,也可以使用VBA一键生成。
点按钮保密工资批量生成,经过几秒钟就全部生成完毕。

Sub 保密工资批量生成()
Dim i As Integer
For i = 1 To Sheets("原始数据").Range("a60000").End(xlUp).Row - 1
Sheets("最终形式").Select
Sheets("最终形式").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Sheets("原始数据").Range("A" & i + 1)
Sheets(Sheets.Count).Range("A8") = Sheets("原始数据").Range("A" & i + 1)
Sheets(Sheets.Count).Range("C8") = Sheets("原始数据").Range("L" & i + 1)
Next
End Sub
本来到这里就可以了,后来我一想,后面学员可能需要将生成的工作表删除,于是我又增加了一段代码。

Sub 删除保密工资()
Dim i As Integer
Application.DisplayAlerts = False
For i = Sheets.Count To 3 Step -1
Sheets(i).Delete
Next
Application.DisplayAlerts = True
End Sub
其实,不管生成或者删除,都是用到For Next循环,这个真的很好用,我经常用这个循环。
生成工作表的,就是简单的某个表的某个单元格=另外一个表的另外一个单元格,只要你懂的单元格怎么写就行。
删除工作表的时候,记得从后面开始删,不能从前面往后面删,要不然循环的时候会出错。For i = Sheets.Count To 3 Step -1 这个就是从最后一个表到第3个表,步长为-1。
删除工作表的时候,正常会弹出警告对话框,Application.DisplayAlerts = False 这个就是关闭警告对话框,这样就可以一次性删除,删除后再开启警告对话框Application.DisplayAlerts = True。
提取码:f307
这边全部课程共计 1907.5 元,报名VIP会员,仅需 888 元,就可以学到全部课程。

上篇:SUMIF、SUMIFS和SUMPRODUCT三大函数详解

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