批量生成工资条和恢复成工资表 | 您所在的位置:网站首页 › 做工资表总是出错 › 批量生成工资条和恢复成工资表 |
一、问题的提出
人事、财务经常会用到工资条,如果手工添加比较麻烦,而且容易出错,我们可以通过录制宏,或者插入VBA代码的方法来解决。有了VBA后,我们可以定义按钮,绑定VBA代码,实现一键生成工资条,或者恢复成工资表。 二、实现方法 1. 生成工资条主要是利用VBA获取表数据的条数,然后用select选取第一行,通过for循环来批量添加表头。 Sub gongzitiao() Dim i As Integer Dim n As Integer n = Cells(Rows.Count, 1).End(xlUp).Row - 2 '获取要添加表头的个数 ActiveSheet.Rows("1:1").Select '选中第一行 For i = 1 To n '这里写上 Selection.Copy '复制第一行 ActiveCell.Offset(2, 0).EntireRow.Select '指针向下移动2行 Selection.Insert shift:=xlDown Next i End Sub 2. 恢复成工作表有时,生成了工资条后,又想返回到工资表,但是因为VBA操作的不可逆性,所以又想让工资条恢复成工资表。代码如下: Sub gongzibiao() Dim i As Integer Dim n As Integer n = Cells(Rows.Count, 1).End(xlUp).Row / 2 - 1 ActiveSheet.Rows("3:3").Select For i = 1 To n '这里写 Selection.Delete shift:=xlDown ActiveCell.Offset(1, 0).EntireRow.Select Next i End Sub由于删除一行后,下面的一行会自动补充上来,因此这时的offset偏移由原来的二行变成了一行。有了以上二种代码,可以轻松实现工资表与工资条的相互转化,十分的便利。 三、学后反思 操作前一定要备份工资表,因为VBA操作具有不可逆性。其它类似的操作也可以先录制宏,再添加循环,以实现批量操作。VBA目前在网上有很多学习教程,再加上chatGPT的加持,所以学习起来并不难。相信磨刀不误砍柴工,掌握了VBA,让你的办公速度可以飞起来。 |
CopyRight 2018-2019 实验室设备网 版权所有 |