欢迎访问装备制造资讯网!

装备制造资讯网

您现在的位置是: 首页 > 机械制造 >详情

机械制造业的工资单怎么做(Excel VBA(5) – 一键制作工资条)

发布时间:2024-06-03 22:54:52 机械制造 93次 作者:装备制造资讯网

今天教一个VBA的经典案例:自动制作工资条。

这也是一个非常实用的案例,掌握了思路,在很多类似场景都能应用,比如隔行插入空行等等。

机械制造业的工资单怎么做(Excel VBA(5) – 一键制作工资条)

案例:

以下是原始的工作表,要做成工资条,需要隔行插入表头,打印后剪下来。

如何能点一下按键就自动插入所有表头?像图二那样?

解决方案:

我们刚开始教VBA的时候说过,初学者可以先录制宏,再按需求修改VBA代码,快速完成程序开发,今天就用这个思路。

1.点击菜单栏的“开发工具”-->"宏"-->"录制宏"

2.给宏取名“工资条”-->点击"确定"

3.选中表头行-->复制-->将鼠标移至需要插入表头的行-->右键单击“插入复制的单元格”

4.停止录制宏

5.点击“开发工具”-->“插入”-->"按钮"

6.在弹出的指定宏窗口中选择我们刚才创建的“工资条”宏-->单击“确定”

7.将按钮名称改为“制作工资条”

8.选中按钮-->右键单击“指定宏”

9.在弹出的窗口中选择“工资条”-->点击“编辑”

10.在打开的VBE代码窗口里,就可以看到刚才录制的宏代码

我给每一句代码后面加入了注释VBA的注释是以'开头,颜色为绿色代码非常简单,就是刚才录制的每一步动作的语言描述

Sub工资条()

'

'工资条Macro

'

Rows("4:4").Select'选中第四行

Selection.Copy'复制所选区域

Rows("6:6").Select'选中第六行

Selection.InsertShift:=xlDown'插入复制的区域

EndSub

11.我们曾经说过,录制宏只能实现一个动作,无法循环调用。

现在点击这个按钮,效果如下每点击一次,就在第六行插入一次表头,完全机械执行录制的动作所以我们要对宏进行后期加工

12.在代码中加入部分修改,就完成了

DimiAsLong:声明变量i,类型为Long其实以本例的数据量来说,定义为Integer也足够了变量的声明我们下次会细说

Fori=6To200Step2:i从6开始,到200结束,步长为2因为我们第一次要在第6行插入,所以从6开始表格总共100行不到,隔行插入表头后,行数会翻倍,所以总数定为200步长2相当于i=i+2,即隔行执行Rows(i).Select:括号里改用变量i,即每次选择第i行配合for语句实现循环效果

Sub工资条()

'

'工资条Macro

'

DimiAsLong

Fori=6To200Step2

Rows("4:4").Select'选中第四行

Selection.Copy'复制所选区域

Rows(i).Select

Selection.InsertShift:=xlDown'插入复制的区域

Next

EndSub

14.现在,按一下按钮,泡杯茶回来,工资条就做好了。