网上常常可以看到各种工资条制作的函数、黏贴等各种方法。都需要几个步骤。感觉费时费力。

学会了VBA 之后,当然就不需要那么多步骤啦。能一键解决的时候,绝不按两下键。

如果本例与你的表格不一致,读者可以复制代码,简单修改几处代码就可以运行了。

问题如下:

Excel VBA 一键工资表制作工资条

Excel VBA 一键工资表制作工资条

问题描述:

1:工资表的原始表格里已经做好了各同事的工资表格,

2:要在每个同事的上一行插入固定的表头,就形成个人的工资条;

解决的思路详解:

1:把表头作为一个单元格区域并赋值

2:用for循环遍历工作表(需要制作工资条的单元格区域),

3:在每个需要增加插入表头的单元格区域,插入表头

代码运行的结果如下:

Excel VBA 一键工资表制作工资条

代码如下:

Excel VBA 一键工资表制作工资条

Sub 生成工资条()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim sht As Worksheet, arr, i, j
Dim rng As Range, Path1 As String

Set sht = Worksheets("工资表原始表格")
Set rng = sht.Range("a2:t3")
arr = sht.Range("a1").CurrentRegion

n = UBound(arr, 1) - 1
" 插入表头的循环
For i = n To 5 Step -1
rng.Copy
Rows(i).Insert Shift:=xlDown
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
代码解析

1:5~6行 Dim定义变量;

2:8行 设定工作表;

3:9行 设定表头区域;

4:10行 把工资表区域的所有数据放入数组arr

5:12行 用n获取倒数第二行号(因为最后一行的合计,不需要制作工资条);

6:14~17行 遍历arr数组;

7:15行 复制表头

8:16行 在需要制作工资条的单元格上面插入工作表

本例思考:

1:本例的for循环加入了“Step -1”这个参数,是因为for循环本来就有step这个参数。只是大部分省略了(当step为1时,可以省略)。step指的时循环的步距。

2:当遇到需要删除、插入单元格的时候,要用倒循环。即step 为 -1

小结:

解决本问题,需要用的知识点:

1:复制、黏贴的运用

点击关注可以更方便的查看Excel VBA的案例文章私信 视频 可以获取54集VBA入门视频私信 VBA或 vba 可以获取文章中含VBA代码的Excle文件

1.《excel工资表 Excel VBA 一键工资表制作工资条》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《excel工资表 Excel VBA 一键工资表制作工资条》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/231164.html