网上常常可以看到各种工资条制作的函数、黏贴等各种方法。都需要几个步骤。感觉费时费力。
学会了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