一键生成工资条、工资表,点起来超爽( 二 )


文章图片


Step 03
现在已经实现了在第3行插入标题 , 下面要实现在第5行插入标题 。 将A3改成A5 , 点绿色运行按钮 。
一键生成工资条、工资表,点起来超爽
文章图片


接着是7、9、11……如果一次次改 , 那就体现不了VBA的优越性了 , 前面已经提过 , 可以借助循环语句 。
Sub 工资条()
For i = 1 To 18
Rows("1:1").Select
Selection.Copy
Range("A" & i * 2 + 1).Select
Selection.Insert Shift:=xlDown
Next
End Sub

现在是19个人 , 而第一个人有标题 , 也就是需要操作18次 。 i * 2 + 1就是获取数字3、5、7……

写代码的时候 , 养成一个好习惯 , 就是定义变量 , 最终代码就出来了 。
Sub 工资条()
Dim i As Integer
For i = 1 To 18
Rows("1:1").Select
Selection.Copy
Range("A" & i * 2 + 1).Select
Selection.Insert Shift:=xlDown
Next
End Sub

Step 04
将原来手工插入的标题删除掉 , 运行代码 , 即可生成工资条 。
一键生成工资条、工资表,点起来超爽
文章图片


不难吧 。

现在如何将工资条复原成工资表 , 也就是将3、5、7……行删除掉 。

同理 , 录制宏 , 改代码 。

Step 01
录制一个宏 , 选择A3 , 删除整行 。
一键生成工资条、工资表,点起来超爽
文章图片


Step 02
点VB进入后台 , 再点模块 , 就可以看到刚刚录制的宏 。
一键生成工资条、工资表,点起来超爽
文章图片


Step 03
有了前面的基础 , 现在修改代码就变得简单 , 将工资条修改的部分全部照搬过来 。
一键生成工资条、工资表,点起来超爽
文章图片


刚刚录制宏的时候是从上删除行 , 删除后, 你会发现标题行错位了 , 现在并不是3、5、7……行 。
一键生成工资条、工资表,点起来超爽
文章图片


记住 , 删除行跟插入行有所不同 , 插入行是从上面往下插入 , 而删除行要从下面往上删除 。

现在是从18倒数到1 , Step -1就是步长-1 。
Sub 工资表()
Dim i As Integer
For i = 18 To 1 Step -1
Range("A" & i * 2 + 1).Select
Selection.EntireRow.Delete
Next
End Sub
一键生成工资条、工资表,点起来超爽


推荐阅读