分享

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

 Excel不加班 2020-06-03

    真的没骗你,点起来超爽,做完了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 将原来手工删除的标题恢复,运行代码,即可生成工资表。

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

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

    推荐:1秒制作多行表头工资条

    上篇:一键搞定!根据总表生成多个分表,根据分表生成目录

    学VBA的时候,有没感觉回到当初刚学Excel的那种感觉,什么操作都用最笨的技能实现。

    也就是说,你会最笨的操作,再将这些操作录制成宏,再懂简单修改代码就好了。

    面对不会的东西,你是选择放弃还是选择坚持?

    作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多