分享

制作工资条的三种方法,请收好

 hercules028 2021-11-29

“来晚了来晚了,让大家久等。”

大观园内,凤姐满面笑容出现在大家的面前。

“姐姐来了就好,姐妹们都等急了”宝玉见凤姐到来急急的说。

“今天请大家看看工资条的作法。”凤姐说着拿出一份表格展现在大家的面前。

图片

“这是府里的工资表,需要做成工资条通知各位,我自己不会,只好有劳大家了。”

“这个不难。”黛玉抢先一步在电脑上操作起来。

图片

“不错不错”凤姐连连称赞,“只是此方法不能随数据变化自动更新,也是美中不足”

宝玉思索片刻:“那就用公式来处理好了”。

新建一个工作表,命名为“工资条”,然后在A1单元格输入公式,右拉下拉即可:

=CHOOSE(MOD(ROW(1:1),3)+1,'',工资表!$A$1:$F$1,OFFSET(工资表!A$1,ROW(1:1)/3+1,))

图片

  “宝兄弟越来越牛了,快解释一下公式吧。”凤姐说道。

  “公式稍微有点小复杂,大家可以大致了解一下计算过程。

首先,使用MOD(ROW(1:1),3)+1,得到1 2 3  1  2  3……这样循环的序列号。然后使用CHOOSE函数,以此为索引值,依次返回空文本''(空白行)、工资表!$A$1:$F$1(标题)和OFFSET(工资表!$A$1:$F$1,ROW(1:1)/3+1,)的计算结果。

其中OFFSET函数部分的作用是,以第一行为基点,公式每下拉三行,引用的行数向下偏移一行。“

  “有劳宝兄弟,我看你输入之后拉来拉去的也麻烦,有没有点一下就可以生成的的方法。”王熙凤又有了新想法。

“我来写一个吧。”元春说道。

“先将工资表建立一个副本,右键单击工作表标签→查看代码,在代码窗口写上以下代码:

Sub 生成工资条()

   Dim i As Integer, iLastRow As Integer

   Application.ScreenUpdating = False

   iLastRow = Range('A1').CurrentRegion.Rows.Count

   For i = iLastRow To 3 Step -1

       Range('A' & i).Resize(2, 1).EntireRow.Insert

       Range('A' & i + 1).Resize(1, 8).Value = Range('A1').Resize(1, 8).Value

   Next i

   Application.ScreenUpdating = True

End Sub

按F5键运行代码即可生成工资条了。

代码大意是,先获取最大行号,从最大行号循环到第三行的位置,每循环一次插入两个空行,在插入的第二个空行填上标题。”

图片

王熙凤作揖谢过回府不提,众人还未落座,却见那厢宝玉和黛玉闹嚷嚷争吵起来,到下回林黛玉误剪香囊袋,贾元春归省庆元宵,预知后事如何,且听下回分解。

图文作者:程习彬

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多