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

2016-02-20 09:07 49 1 收藏

下面是个超简单的用Excel制作漂亮的工资条的3种方法教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - Excel教程 】

如何使用Excel进行工资条的制作,也许有些网友使用已经很长时间了,但如何更快更好的做出漂亮的工资条,看看作者的方法吧。

小问题难倒老财务,也许你已经在财务口上工作多年,也许你天天都要面对Excel那张老脸,也许你已经习惯了用工资明细表做员工工资统计并 向上级汇报,把表中的条目一条条复制粘贴后打印发给每个员工。可你是否想过,找一个更简单更有效率的方法?看起来这似乎有些困难:在工资明细表中,工资的 项目(即表头)一般只出现在表格开头的某一行,而在工资条中,为了便于阅读则要求每个人的工资都有表头,那么如何巧妙地把工资明细表制作成便于打印的工资 条呢?如图所示,这就是我们要完成的工作(原工资表见图1,转换成工资条后的效果见图2):

img200708010957430

图1 原工资表

img200708010957570

图2 转换后效果

条条大路通罗马,不过路有远近之分,方法也有难易之别,这里给大家提供三种最简单易用的方法。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

方法一:宏命令控制法

对于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(Cells(i, 1), Cells(i, 256)).Copy (Worksheets(2).Cells(3 * i - 6, 1))

Next i

End Sub

关闭编辑器,将自动返回到刚才的Excel表,选择工具→宏→宏,将弹出如下对话框:(见图3)

img200708010958170

图3 添加宏

点击执行,将在Sheet2生成如Gz-2所示的转换成工资条,怎样,不复杂吧。当然,如果你的表总Sheet2已经输入了别的内容,就可以将他复制到Sheet3来生成,代码修改也很简单,把其中的Sheet2修改成Sheet3就可以了,其它代码不变。

方法二:公式填充法

相比宏命令,公式填充法更便于理解,不过需要手工操作的步骤稍微多一些,鱼和熊掌不可得兼,要用哪种方法就看你的爱好了。

首先打开要操作的Excel工资表,为了不破坏原表(Sheet1)结构,我们仍然采用在Sheet2中进行操作的方法。由于这个工资表一共有L列,18行,要复制的表头项目在第二行,所以在第一个单元格中输入如下公式:

以下是代码片段:

=IF(MOD(ROW(),2)=0,INDEX(sheet1!$A:$L,INT(((ROW()+1)/2))+2,COLUMN()),sheet1!A$2)

接下来的工作就简单了,我们只要使用填充柄将此公式填充到其它单元格,列向填充到L列,行填充到18行就大功告成。

因为在不同的表格中这个公式需要修改的地方比较多,所以这里做一下解释:

由于工资条中的奇数行都是表头,偶数行是数据,所以在这个公式中首先进行奇偶行判断,若是奇数行,直接取工资表的A2单元格数据(即公式中的 sheet1!A$2,如果表头数据在第4行第三列则修改为sheet1!C$4)。若是偶数行,则用INDEX()函数来取数。该函数的第一个参数是指 定工资表中的一个取数区域(即sheet1!$A:$L,如果不是从A到L列,那么可以修改这个参数,如修改为sheet1!$B$P ,就表示在B到P列之间取数)。当然,如果你想把转换后的数据放在Sheet3而不是Sheet2中,那么,只要在Sheet3中执行以上操作就可以了, 并不需要修改公式的内容(见图4)。

img200708010958330

图4 公式填充法

采用这种方法不能自动插入空行,给打印后的裁减带来了一定的麻烦,所以,建议在做完后在全选所有单元格,通过调整行高和列宽来解决这个问题。

方法三:Word邮件合并法

对于宏和公式运用不太熟练的朋友别着急,这里还有一招等着你。

首先我们确定好主文档(工资条表格)和数据源(Excel或Access格式的记录表),然后通过邮件合并向导把数据源中的的字段信息合并进来。

点击工具→信函与邮件→邮件合并,然后在屏幕右侧进入邮件合并向导。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

第一步:选择文档类型。选择信函。

第二步:选择开始文档。选择默认的使用当前文档。

第三步:选取收件人。单击使用现有列表区的浏览按钮,通过选择数据源对话框,定位格式数据源的存放位置,选中并打开。接着弹出邮件合并收件人对话框,在这里可以指定参与邮件合并的记录,选择默认的全部,确定返回Word编辑窗口。

第四步:撰写信函。将插入点定位于表格的第二行第一格内,单击邮件合并工具栏上插入Word域左边的插入域按钮,打开插入合并 域对话框,选中域下方列表框中的序号字段,并单击插入按钮,即可把序号字段合并到主文档中。然后用同样的方法把其余字段插入到主文档表 格中对应的位置即可。

第五步:预览信函。在这里我们可以浏览一下工资条的大致效果,还可以调整姓名表格的宽度,让姓名在一行内显示。然后选中姓名后的表格区 域,单击鼠标右键在弹出的菜单中选择平均分布各列,让这些列具有相同的宽度,使工资条更美观。如果这样直接进入打印操作,一页纸只能打印一个工资条, 所以选中整个工资条表格,复制,粘贴到原表格下方空一行后的地方,把插入点定位于主文档中第一和第二个表格之间的空行处,单击邮件合并工具栏上的插 入Word域按钮,在弹出的菜单中选择下一记录命令,以此类推,就可以在一页纸上多排几个工资表,充分利用资源了。

最后进入第六步:完成合并。然后把工资条打印出来,就制作完成了(见图5)。

img200708010958490

图5 完成

OK,再也不用费力地重复劳动专门制作工资条数据表了,通过简单的转化一个数据表就实现了两项完全不同的功能,赶快操练一下吧。

来源:http://www.tulaoshi.com/n/20160220/1643281.html

延伸阅读
标签: excel
怎么让Excel按人头打印出工资条?   使用Excel按人头打出工资条,有用Word邮件合并功能的,也有用VBA功能的,也有采用编写公式直接产生的。可参看天极软件办公栏目的文章(Word、Excel配合按人头打印工资条、仅需一个公式让Excel按人头打出工资条)但我觉得,对于普通公司员工来说,这些方法都显得专业性太强。其实,变通一下,也可以不...
标签: 电脑入门
经常使用Excel时,为了让用户更加直观的看到数据的内容,我们通常会添加标签,但有时候标签往往非常的多余,这时候我们可以通过几种方法进行删除标签。 方法一:选中要删除的系列标签,按下Delete键。 方法二:选中要删除的系列标签单击鼠标右键,从弹出的下拉菜单中选择删除选项。 方法三: 1、选中要将其标签删除的系列单击鼠标右键,...
标签: Web开发
    使用 CSS 实现垂直居中并不容易。有些方法在一些浏览器中无效。下面我们看一下使对象垂直集中的3种不同方法,以及它们各自的优缺点 方法一: 这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align property 属性。 div id="wrapper" div id="cell" div class="content...
现在很多公司的工资都是背对背不公开的,但是把工资条打印出来一份一份地发太费事。不用急,用Word的“邮件合并”轻松搞定。word中怎么邮件合并,详细很多使用者都不会吧!本文特地制作一个word邮件合并教程,不会的朋友可以了解下需要注意的是不要省略表格中的标题行,以免邮件合并时找不到合并域名,本教程适用于老师给学生做成绩...
加载外部文件的进度条(看帮助文档整理),只适合那些不愿看帮助文档的新手。我只不过加了一些注释。 为加载图像文件或 SWF 文件创建进度条 创建一个名为 loadImage.fla 的新 Flash 文档。 选择"修改""文档",在宽度文本框中键入 700,在高度文本框中键入 500,从而更改文档的尺寸。 在时间轴中选择第 1 帧,然后在"动作"面板中键入下面的代...

经验教程

81

收藏

22
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部