- 2017/6/9 14:34:33
- 类型:原创
- 来源:电脑报
- 报纸编辑:电脑报
- 作者:
财会
按人头批量打印工资条
@重庆唐子涵
当前批量打印工资条主要有3种方法,你知道它们各自的优缺点吗?
方法1:借助邮件合并功能
在Excel中创建一个工作表,在第一行中依次输入标题名称,例如序号、姓名、岗位工资、工龄工资等,在第二行依次输入每人的工资数据,数据输入并完成计算之后,以“工资表”为名保存。在Word中新建一个文件,页面设置为A4纸,按照应打印工资项目的名称,制作出一个表格,在一页纸中设计能打印3~4个工资条,将其另存为模板备用。
用工资条模板再新建一个Word文档,右键单击工具栏,选择“邮件合并”命令,打开“邮件合并”工具栏,点击“打开数据源”按钮,在打开对话框中双击存放的数据表,打开“选择表格”对话框,选中包含有数据的工作表,点击“确定”按钮,将光标插入表格第一个项目的位置,例如序号下的单元格,点击“邮件合并”工具栏中的“插入域”按钮,再选择“数据库域”→ “序号”,点击“插入”按钮就可以将序号合并域插入到表格中。
以上操作完成后,将光标放入表格第二个项目的位置,例如“姓名”下的单元格,再次打开“插入合并域”对话框,再选中“姓名”选项,点击“插入”按钮。重复上面的操作将所有合并域插入工资条中的对应位置。最后,点击“邮件合并”工具栏中的“合并到新文档”按钮,在打开的对话框中选择合并范围。如果需要生成所有员工的工资条,可以选中“全部”选项;打印当前记录时可选中“当前记录”选项即可。
这个方法操作简单没有上手门槛,但数据多了比较繁琐。
方法2:借助VBA
在工作表中按组合键“Alt+F11”调出VBA对话框,输入如下代码:
Sub 工资条()
'yianxss
Dim i&, Mxrow&
Sheets(1).[a1].CurrentRegion.Copy Sheets(2).[a1] '备份数据
With Sheets(2)
Mxrow = .Cells(.Rows.Count, 1).End(3).Row
For i = Mxrow To 3 Step -1 '插入空行
.Rows(i & ":" & i).Insert Shift:=xlDown
Next
.Rows("1:1").Copy '复制表头
.Range("a2:a" & .Cells(.Rows.Count, 1).End(3).Row). _
SpecialCells(xlCellTypeBlanks).Select '定位空行
.Paste '粘贴表头
.[a1].Select
End With
End Sub
需要注意的是,借助VBA虽然非常方便,但难度较高,许多初级财会根本不会代码且看到看到代码就头疼。
方法3:借助公式
新建一个Excel文件,在Sheet1中存放工资表的原始数据,假设第一行是标题,从第二行开始是每个人的工资,且有X列。在文件底部切换到Sheet2中,在A1单元格中输入公“=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,Sheet1!A$1,INDEX(Sheet1!$A:$N,INT((ROW()+4)/3),COLUMN())))”,之后将鼠标放在A1单元格的右下角,当鼠标变成十字星时,向右拖动鼠标自动填充至X列,这样工资条中的第一行就出来了。选定A1:X1,把鼠标放在X1单元格的右下角,鼠标再次变成十字星时,向下拖动鼠标自动填充到数据的最后一行,工资条就全部制作完成了。
该公式运用IF函数,对MOD函数所取的引用行号与3的余数进行判断。如果余数为0,则产生一个空行;如果余数为1,则固定取Sheet1中第一行的内容;否则运用INDEX函数和INT函数来取Sheet1对应行上的数。
这个方法比方法2简单,比方法1难。
报纸客服电话:4006677866 报纸客服信箱:pcw-advice@vip.sin*.c*m 友情链接与合作:987349267(QQ) 广告与活动:675009(QQ) 网站联系信箱:cpcw@cpcw*.c*m
Copyright © 2006-2011 电脑报官方网站 版权所有 渝ICP备10009040号