做一个能自动生成工资条的工资表.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
假设表Sheet1为数据源表,数据区域为A:B列(带标题),Sheet2为要生成的工资条 1\第一种情况,一行标题,一条记录,一行空,这样方便区开,A1单元格的公式(将它右拉下拉复制公式) =IF(OR(ROW()/3COUNTA(Sheet1!$A:$A)-1,MOD(ROW(),3)=0),,IF(MOD(ROW(),3)=1,Sheet1!A$1,INDEX(Sheet1!$A:B,INT(ROW()/3)+2,COLUMN(A:A)))) 2\如果是直接一行标题,一行记录,每条记录中间不隔开的话,用下面的这个公式,A1单元格的公式(将它右拉下拉复制公式) =IF(ROW()/2COUNTA(Sheet1!$A:$A)-1,,IF(MOD(ROW(),2),Sheet1!A$1,INDEX(Sheet1!$A:$B,INT(ROW()/2)+1,COLUMN(A:A)))) 做工资条,对于有工资软件的单位来说,可能算不了什么事,因为软件都能提供这样的功能,可对于还在用EXCEL来做工资的单位来说,可就是一件头疼的大事了,曾经在工厂里看过行政部的同事打工资表时把表头先复制好然后一行一行插入,这样的工作量就实在太可怕了!后来找到了几种比较方便的办法,与大家分享。 ????在EXCEL中利用工资表做工资条的方法大致可以分为两种,一种是利用宏来完成,另一种就是每次都通过一些操作去完成。我觉得两种方法各有优缺点,宏在第一次做表时可能会麻烦一些,但一劳永逸,以后不管换什么人做工作,都只需知其然而不需知其所以然,对操作人员的要求相当低;而第二种方法不用去理解复杂的VBA代码,也不用经历第一次复杂的设置,只需在每个月发工资时通过几步简单的操作,就能达到目的,但麻烦的是,操作的人不止要知其然还要知其所以然,如果这项工作换人来做,而偏偏接手的人又不会的时候,您可就需要又去培训一次啦! ????因为我在企业上班,人员的流动性较大,发工资的人数也比较多,所以我更倾向于用宏来解决这个问题——因为只需要做好后交给使用者就可以了,不需要每个人去培训一次。 ????下面把我知道的几种方法介绍一下。 打开初始的工资表,在工具栏上单击右键,打开控件工具箱 选定“命令按钮” 在适当的位置添加两个命令按钮,最好选择工资表以外的区域,这样不会影响工资表的打印效果 在“控件工具箱”中选择“设计模式”,然后右键单击第一个命令按钮,选择“属性”,在弹出窗口中将该命令按钮的名称设为“btnInsert”,Caption选项设为“插入表头”,如图所示 按同样方法,将第二个命令按钮的名称设为“btnDelete”,Caption选项设为“删除表头” 选定“插入表头”按钮,右键单击,选择“察看代码”,会弹出以下的窗口 单击“插入”菜单,选择“模块”,会弹出一个模块1的代码编辑窗口 在代码编辑窗口中输入下列代码,并保存(可以直接从文件中复制后在编辑窗口中粘贴) Sub?InsertHeader() ????Dim?r?As?Long,?LastRow?As?Long ????Application.ScreenUpdating?=?False ????LastRow?=?Sheet1.Range(A65536).End(xlUp).Row ????r?=?5 ????LastRow?=?LastRow?-?r?+?1 ????For?i?=?1?To?LastRow ?????????Sheet1.Rows(3).Copy ?????????Sheet1.Rows(r).Insert?Shift:=xlDown ??????????????? ?????????r?=?r?+?2 ????Next?i ????Application.CutCopyMode?=?False ????Application.ScreenUpdating?=?True ???? End?Sub Sub?DeleteHeader() ????Dim?r?As?Long,?LastRow?As?Long ????Application.ScreenUpdating?=?False ????LastRow?=?Sheet1.Range(A65536).End(xlUp).Row ????r?=?5 ????LastRow?=?(LastRow?-?r?+?1)?/?2 ????For?i?=?1?To?LastRow ????????Sheet1.Rows(r).Delete ???????? ????????r?=?r?+?1 ???????? ????Next?i ????Application.ScreenUpdating?=?True End?Sub 将模

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档