批量生成工资条和恢复成工资表

一、问题的提出

人事、财务经常会用到工资条,如果手工添加比较麻烦,而且容易出错,我们可以通过录制宏,或者插入VBA代码的方法来解决。有了VBA后,我们可以定义按钮,绑定VBA代码,实现一键生成工资条,或者恢复成工资表。

批量生成工资条和恢复成工资表_第1张图片

二、实现方法

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偏移由原来的二行变成了一行。有了以上二种代码,可以轻松实现工资表与工资条的相互转化,十分的便利。

三、学后反思

  1. 操作前一定要备份工资表,因为VBA操作具有不可逆性。
  2. 其它类似的操作也可以先录制宏,再添加循环,以实现批量操作。
  3. VBA目前在网上有很多学习教程,再加上chatGPT的加持,所以学习起来并不难。相信磨刀不误砍柴工,掌握了VBA,让你的办公速度可以飞起来。

你可能感兴趣的:(VBA,VBA,编程语言,自动化)