让打印工资条不再“繁”
办公族
公司OA MR.陈Office现场报道: 各个公司每月都必不可少会打印工资单,那如何利用Excel简单制作工资条呢,而且关键的是制作好工资条后如何方便有效的把它们打印出来?这里我总结了不少经验,大家不妨借鉴一下。
一、打印工资条前的准备
制作出如图1所示那样的工资条很简单,但如果要方便打印出工资条,还需要做成图2那种效果才方便打印。


1.员工序列号自动排列
每个员工都应该有一个编号,可以手工输入但一切都自动交给Excel也不错。我们只需要选中A2单元格,输入公式:=ROUNDUP((COUNTA(工资表!A:A)-2)/10,0),就可以统计工资条共有多少页(此处假定每页打印10个人的工资条)。然后再分别选中B2至F2单元格,输入数字2、3……6。选中A4单元格,输入公式:=A3+1。确认后再次选中A4单元格,将上述公式复制到A5至A12单元格,这样Excel就会把员工们自动排个列。
2.实现工资条形式
如果手工来做图2那种效果,碰见员工多的时候那是太麻烦了,那么用Excel怎么来自动实现呢?首先,选中B3单元格,输入公式:=IF(ISERROR(VLOOKUP($A3,工资表!$A:$F,B$2,FALSE)),"",VLOOKUP($A3,工资表!$A:$F,B$2,FALSE))。再次选中B3单元格,用“填充柄”将该公式复制到C3至F3单元格中;再同时选中B3至F3单元格,将其中的公式复制到B4至F12单元格中。最后做成如图2的格式,设置好字体、字号、行高和列宽等就可以准备打印了。
二、打印工资条
当我们需要打印工资条时,有手工打印和自动打印两种方法。手动打印需要有人随时输入职工编码并打印工资单,比较麻烦和费时,但自动打印就可以一次性打印完成,就方便多了。
1.手工打印
启动Excel,打开工资表文档,切换到“工资条”工作表中,在A3单元格中输入第1位职工“工号”(此处我们假定为“1”),1至10号职工工资就自动填入下面各工资条中,按下“常用”工具条上“打印”按钮,1至10号职工的工资条就打印出来了。依照上面的操作,在A3单元格中输入数字11(第11号职工的工号)、21(第21号职工工号)……,就可以将所有职工的工资条全部打印出来。
2.自动打印
如果觉得上述手工打印操作比较麻烦,可以用VBA来自动打印。
首先在Excel中按下“Alt+f11”组合键进入VBA编辑状态(如图3)。

在左侧区域中,选中“工资表”选项,执行“插入→模块”命令,插入一个新模块(“模块1”),然后将下述代码输入到“模块1”右侧的编辑区域中:
Sub 工资条()
x = Cells(2, 1)
For i = 1 To x
Cells(3, 1) = 10 * (i - 1) + 1
ActiveWindow.SelectedSheets.PrintOut
Next
End Sub
输入完成后,关闭编辑窗口,返回工作表中。
小贴士:上述代码中“Cells(3, 1) = 10 * (i - 1) + 1”表示在A3单元格中依次输入1、11、21……等数值,如果1页打印工资条的数目不是10人,请修改代码中的数值“10”。
然后执行“视图、工具栏、控件工具箱”命令,展开“控件工具箱”工具栏(如图4)。

点击“工具栏”上的“命令按钮”按钮,然后在工作表中拖拉一下,画出一个命令按钮。
右击命令按钮,在随后弹出的快捷菜单中,选择“属性”选项,打开“属性”对话框(如图5),切换到“按分类序”标签下,展开“外观”选项,将“Caption”选项后面的字符修改为“打印工资条”,再展开“杂项”选项,将“PrintObiect”选项设置为“False”,关闭返回。

小贴士:如果对“PrintObiect”选项采取其默认的设置“True”,那么在打印时,该按钮一同被打印出来,影响工资条的观感效果。
双击命令按钮,再次进入VBA编辑状态,将下述代码输入到右侧的编辑区域中:
Private Sub CommandButton1_Click()
工资条
End Sub
关闭返回。
小贴士:上述代码中的“工资条”请与第2步的代码名称保持一致。
调整个命令按钮的大小,并定位在工作表的合适位置上,再按一下“工具栏”上的“退出设计模式”按钮。以后需要打印工资条时,只要按一下这个按钮就可以了(“工资表”中的人数可以随时增减,不影响打印效果)。