魔方网表 让信息化更简单

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

查看: 3914|回复: 1

用 Excel 制作漂亮的工资条的方法

[复制链接]
laiye 发表于 2008-12-20 13:36:00 | 显示全部楼层 |阅读模式
如何使用Excel进行工资条的制作,也许有些网友使用已经很长时间了,但如何更快更好的做出漂亮的工资条,看看作者的方法吧。  “小问题难倒老财务”,也许你已经在财务口上工作多年,也许你天天都要面对Excel那张老脸,也许你已经习惯了用工资明细表做员工工资统计并向上级汇报,把表中的条目一条条复制粘贴后打印发给每个员工。可你是否想过,找一个更简单更有效率的方法?看起来这似乎有些困难:在工资明细表中,工资的项目(即表头)一般只出现在表格开头的某一行,而在工资条中,为了便于阅读则要求每个人的工资都有表头,那么如何巧妙地把工资明细表制作成便于打印的工资条呢?如图所示,这就是我们要完成的工作(原工资表见图1,转换成工资条后的效果见图2):
图1 原工资表
图2 转换后效果
  “条条大路通罗马”,不过路有远近之分,方法也有难易之别,这里给大家提供三种最简单易用的方法。
  方法一:宏命令控制法
  对于Office家族的宏功能,大家或许早有耳闻,但由于需要使用VBA进行编程,所以宏一直让许多人望而却步,不过要使用一个现成的宏就简单多了。首先打开要处理的Excel表,选择“工具→宏→Visual Basic 编辑器”,在编辑器左边的窗口中用鼠标双击Sheet1,会出现代码编辑窗口,在代码编辑窗口输入如下代码(为了不破坏原有的工资表,所以这里采用了将 Sheet1的内容复制到Sheet2的方法,所以最后的生成结果是在Sheet2中显示):
  Sub MakeSalaryList()
  Dim i As Integer
  Dim 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 i
  End Sub
  关闭编辑器,将自动返回到刚才的Excel表,选择“工具→宏→宏”,将弹出如下对话框:(见图3)
图3 添加宏
  点击“执行”,将在Sheet2生成如Gz-2所示的转换成工资条,怎样,不复杂吧。当然,如果你的表总Sheet2已经输入了别的内容,就可以将他复制到Sheet3来生成,代码修改也很简单,把其中的Sheet2修改成Sheet3就可以了,其它代码不变。
anntonny 发表于 2008-12-26 21:56:00 | 显示全部楼层
谢谢 这个正需要
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2025-9-6 19:04 , Processed in 0.059864 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表