用_Excel_制作漂亮的工资条的方法.doc_第1页
用_Excel_制作漂亮的工资条的方法.doc_第2页
用_Excel_制作漂亮的工资条的方法.doc_第3页
用_Excel_制作漂亮的工资条的方法.doc_第4页
用_Excel_制作漂亮的工资条的方法.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何使用Excel进行工资条的制作,也许有些网友使用已经很长时间了,但如何更快更好的做出漂亮的工资条,看看作者的方法吧。“小问题难倒老财务”,也许你已经在财务口上工作多年,也许你天天都要面对Excel那张老脸,也许你已经习惯了用工资明细表做员工工资统计并向上级汇报,把表中的条目一条条复制粘贴后打印发给每个员工。可你是否想过,找一个更简单更有效率的方法?看起来这似乎有些困难:在工资明细表中,工资的项目(即表头)一般只出现在表格开头的某一行,而在工资条中,为了便于阅读则要求每个人的工资都有表头,那么如何巧妙地把工资明细表制作成便于打印的工资条呢?如图所示,这就是我们要完成的工作(原工资表见图1,转换成工资条后的效果见图2):图1 原工资表图2 转换后效果“条条大路通罗马”,不过路有远近之分,方法也有难易之别,这里给大家提供三种最简单易用的方法。方法一:宏命令控制法对于Office家族的宏功能,大家或许早有耳闻,但由于需要使用VBA进行编程,所以宏一直让许多人望而却步,不过要使用一个现成的宏就简单多了。首先打开要处理的Excel表,选择“工具宏Visual Basic 编辑器”,在编辑器左边的窗口中用鼠标双击Sheet1,会出现代码编辑窗口,在代码编辑窗口输入如下代码(为了不破坏原有的工资表,所以这里采用了将 Sheet1的内容复制到Sheet2的方法,所以最后的生成结果是在Sheet2中显示):Sub MakeSalaryList()Dim i As IntegerDim endrow As Integer测出数据的最后一行endrow = Sheet1.Range(a65536).End(xlUp).Row - 1把标题贴过去Worksheets(1).Range(1:1).Copy (Worksheets(2).Cells(1, 1)For i = 3 To endrow把每条数据抬头贴过去Worksheets(1).Range(2:2).Copy (Worksheets(2).Cells(3 * i - 7, 1)把数据贴过去Worksheets(1).Range(Cells(i, 1), Cells(i, 256).Copy (Worksheets(2).Cells(3 * i - 6, 1)Next iEnd Sub关闭编辑器,将自动返回到刚才的Excel表,选择“工具宏宏”,将弹出如下对话框:(见图3)图3 添加宏点击“执行”,将在Sheet2生成如Gz-2所示的转换成工资条,怎样,不复杂吧。当然,如果你的表总Sheet2已经输入了别的内容,就可以将他复制到Sheet3来生成,代码修改也很简单,把其中的Sheet2修改成Sheet3就可以了,其它代码不变。1.个人认为,工资条打印一般是都横向的A4纸,所以我把页面方向改成横向2.在word里作工资条格式(和工资表的格式是一模一样的。我直接在EXCEL里复制过来。)3.打开工具-信函和邮件-邮件合并(这时跳出的是向导。)4.下一步启动文档-下一步选取收件人-点浏览-打开数据源(目录)-下一步攒写信函-其他先项-插入哉(插入到相应的位置-下一步预览信函-完成合并-编辑个人信函 5.大家看到的工资条的生成是一页一条,我们把它设置一下:先中所有页, 页面设置-版式-节的起始位置 接续本页-应用于 整篇文章完成了新插入一个工作表 在A1输入以下公式(可复制以下内容) =IF(MOD(ROW(),3)=0,IF(MOD(ROW(),3)=1,清单!A$1,INDEX(清单!$A:$GH,INT(ROW()+4)/3),COLUMN() 如果有两行项目可以使用下面公式: =IF(MOD(ROW(),4)=0,IF(MOD(ROW(),4)=1,清单!A$1,IF(MOD(ROW(),4)=2,清单!A$2,INDEX(清单!$A:$GF,INT(ROW()+9)/4),COLUMN() 然后向右向下拖拉复制公式。 其中清单为工资表的表名,可在公式里修改。 工资条间距离需要自己设置 本工资簿包含两张工资表。 第1张工资表就是工资清单,称为清单。它第一行为标题行包括职工姓名、各工资细目。 第2张工作表就是供打印的表,称为工资条。它应设置为每三行一组,每组第一行为标题,第二为姓名和各项工资数据,第三行为空白行。就是说整张表被3除余1的行为标题行,被3除余2的行为包括职工姓名、各项工资数据的行,能被3整除的行为为空行。 在某一单元格输入套用函数=MOD(ROW(),3),它的值就是该单元格所在行被3除的余数。因此用此函数能判别该行是标题行、数据行还是空行。 在A1单元格输入公式=IF(MOD(ROW(),3)=0,IF(MOD(ROW(),3)=1,清单!A$1,value-if-false)并往下填充,从A1单元格开始在A列各单元格的值分别为清单A1单元格的值即姓名、value-if-false、空白,姓名、value-if-false、空白,。其中value-if-false表示MOD(ROW(),3)既不等于0又不等于1时,即它等于2时应取的值。它可用如下函数来赋值:INDEX(清单!$A:$G,INT(ROW()+4)/3),COLUMN()。INDEX()为一查找函数它的格式为:INDEX(reference,row-num,col-num),其中reference为查找的区域,本例中为清单表中的A到G列,即函数中的清单!$A:$G,row-num为被查找区域中的行序数即函数中的INT(ROW()+4)/3),col-num为被查找区域中的列序数即函数中的COLUMN()。第2、5、8.行的行号代入INT(ROW()+4)/3)正好是2、3、4,COLUMN()在A列为1。因此公式=INDEX(清单!$A:$G,INT(ROW()+4)/3),COLUMN()输入A列后,A2、A5、A8单元格的值正好是清单A2、A3、A4,单元格的值。这样,表的完整的公式应为=IF(MOD(ROW(),3)=0,IF(MOD(ROW(),3)=1,清单!A$1,INDEX(清单!$A:$G,INT(ROW()+4)/3),COLUMN()。把此公式输入A1单元格,然后向下向右填充得到了完整的工资条表。 为了表格的美观还应对格式进行设置,一般习惯包括标题、姓名等文字在单元格中要取中,数字要右置,数字小数点位数也应一致,还有根据个人的爱好设置边框。本表格只需对一至三行的单元格进行设置,然后通过选择性格式设置完成全表的设置。 用Excel巧转工资条size=2color=RedExcel具有强大的数据处理和打印输出功能,并且易学易用,是广大用户喜欢使用的电子表格处理软件。现在一些单位的财会人员喜欢用Excel打印本单位的职工工资总表与工资条,但在Excel中要将工资总表(手工地转换为工资条则是一件比较烦琐的事,下面是我编写的一个Excel宏,运行这个宏就可将编辑好了的工资总表很方便地转换为工资条打印输出。 在Excel中新建一个文件,将其命名为“工资表与工资条”,在工作表“sheet1”中输入并编辑好本单位职工工资总表(后,点击“工具”菜单“宏”“宏”输入宏名“生成工资条”创建,输入如下的宏的各行文本,输入完成后保存该宏。将工作表“sheet1”复制为另一个工作表“sheet2”中,使“sheet2”成为当前工作表,执行刚才创建的宏,即可很快将表1所示的工资表转换为表2所示的工资条。 /color/sizecolor=Bluesize=2宏的内容如下: Sub生成工资条() Cells.Select 选择整个表去掉表格线 Range(F1).Activate Selection.Borders(xlDiagonalDown).Line Style=xlNone Selection.Borders(xlDiagonalUp).LineStyle=xlNone Selection.Borders(xlEdgeLeft).LineStyle=xlNone Selection.Borders(xlEdgeTop).LineStyle=xlNone Selection.Borders(xlEdgeBottom).LineStyle=xlNone Selection.Borders(xlEdgeRight).LineStyle=xlNone Selection.Borders(xlInsideVertical).LineStyle=xlNone Selection.Borders(xlInsideHorizontal).LineStyle=xlNone Rows(2:2).Select 选择第2行 Selection.InsertShift:=xlDown 在第2行前插入一行,保持第2行 为选中状态 num=150 总人数3,如工资表中有100人则 为1003即num=300 col=14 工资表的栏数,如工资表有17栏则 col=17 num1=4 DoWhilenum1=num 循环插入空行 Range(Cells(num1,1),Cells(num1,col).Select 选中第num1行的第1列到第col列 Selection.InsertShift:=xlDown Selection.InsertShift:=xlDown num1=num1+3 Loop Range(Cells(1,1),Cells(1,col).Select Application.CutCopyMode=False 剪切复制模式无效 Selection.Copy 复制选择区域 Range(A2).Select 选择A2单元格 ActiveSheet.Paste 从A2单元格起粘贴内容 num2=5 DoWhilenum2=num 循环插入标题行 Range(Cells(1,1),Cells(1,col).Select Application.CutCopyMode=False Selection.Copy Cells(num2,1).Select ActiveSheet.Paste num2=num2+3 Loop Range(Cells(2,1),Cells(3,col).Select Application.CutCopyMode=False Selection.Borders(xlDiagonalDown).LineStyle =xlNone 定义表格边框线、内线样式 Selection.Borders(xlDiagonalUp).LineStyle=xlNone WithSelection.Borders(xlEdgeLeft) .LineStyle=xlDouble .Weight=xlThick .ColorIndex=xlAutomatic EndWith WithSelection.Borders(xlEdgeTop) .LineStyle=xlDouble .Weight=xlThick .ColorIndex=xlAutomatic EndWith WithSelection.Borders(xlEdgeBottom) .LineStyle=xlDouble .Weight=xlThick .ColorIndex=xlAutomatic EndWith WithSelection.Borders(xlEdgeRight) .LineStyle=xlDouble .Weight=xlThick .ColorIndex=xlAutomatic EndWith WithSelection.Borders(xlInsideVertical) .LineStyle=xlDash .Weight=xlThin .ColorIndex=xlAutomatic EndWith WithSelection.Borders(xlInsideHorizontal) .LineStyle=xlDash .Weight=xlThin .ColorIndex=xlAutomatic EndWith Selection.Copy Range(Cells(5,1),Cells(6,col).Select Selection.PasteSpecialPaste:=xlFormats,Operation:=xlNone,SkipBlanks:=_ False,Transpose:=False 接上行删除上行尾的连字符 _,复制表格线样式 num3=8 DoWhilenum3=num 循环复制表格线样式 Range(Cells(num3,1),Cells(num3+1,col) .Select

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论