关注Excel不加班,置顶公众号
恭喜下面粉丝:🌱开心、小李忙、勿相忘cium,获得书籍,加卢子微信chenxilu2019,发送姓名电话地址。
为了活跃气氛,从留言区随机抽取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。
注:文章版权归原作者所有,内容仅供读者学习、交流之目的,如有侵权,请联系我们删除。
联系邮箱:zirongzhang@ningmengyun.com