分享

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

 anrezjb 2020-06-04

恭喜下面3个粉丝:乊o①^、叶、y,获得书籍,加卢子微信chenxilu2019,发送姓名,电话,地址。

为了活跃气氛,在文末点亮“在看”+评论区留言,我会从中抽取3名粉丝,每人赠送一本《Excel效率手册 早做完,不加班》。

真的没骗你,点起来超爽,做完了2个按钮,我都点了几十次。

点一下工资表就变成工资条。

再点一下,工资条就变成工资表。

要用VBA实现这2个功能,真的很简单,只要你懂得最基础的复制粘贴,插入删除等功能即可。

其实,VBA就是将你当初学基础操作的过程,再重新来一遍而已。不要说什么不会英语,学不会之类,压根儿就跟英语无关,我也不会英语。

工资条,其实就是将第一行的标题复制,插入到3、5、7等奇数行,对吧。

Step 01 录制一个宏,将第一行的标题复制,插入到第3行。

Step 02 点VB进入后台,再点模块,就可以看到刚刚录制的宏。

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


Step 04 将原来手工删除的标题恢复,运行代码,即可生成工资表。

最后,插入按钮来执行代码,会看起来更高大上。

不要老是害怕学不会,只要你知道循环语句,会录制宏就可以解决掉很多问题了。  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多