excel自动生成工资条.pdf

-- 方法一 :宏命令控制法 对于 O ffice家族的宏功能,大家或许早有耳闻,但由于需要使用VBA 进行编程,所以 宏一直让许多人望而却步,不过要使用一个现成的宏就简单多了。首先打开要处理的Excel 表,选择 “工具→宏→Visual Basic 编辑器”,在编辑器左边的窗口中用鼠标双击 Sh ee t1,会出现代码编辑窗口 ,在代码编辑窗口输入如下代码 (为了不破坏原有的工资表 ,所以这 里采用了将 S heet1的内容复制到 Sheet2的方法,所以最后的生成结果是在 Sh eet2中显 示): Sub Ma keSa laryLi st() Dim i As Integer Dim endrow A s IntegInteger 测出数据的最后一行 endrow = Sheet1.Range("a65536).End(xlUp).d(xlUp).Row - 1 '把标题贴过去 W orksheets(1).Range(1:1").Co py (W orksheets(2).Ce lls(1, 1)) F or i = 3To endrow 把每条数据抬头贴过去 Worksheets(1).Range(2:2").Copy (Worksheets (2).Cells(3 * i - 7, 1)) 把数据贴过去 Wo rk she ets(1).Range(Ce lls(i,1),Cells(i,2 56)).Co py (Wo rksheets(2). Cells(3 * i- 6, 1)) Next i En d Sub 关闭编辑器,将自动返回到刚才的 E xce l表,选择 “工具→宏→宏”,将弹出如下对话 框: 点击 “执行”,将在 Sheet2生成如Gz-2所示的转换成工资条,怎样,不复杂吧。当然,所示的转换成工资条,怎样,不复杂吧。当然, 如果你的表总She et2已经输入了别的内容,就可以将他复制到Shee t3 来生成,代码修改 也很简单,把其中的 Sh eet2修改成 SheShe et3就可以了,其它代码不变。 方法二:公式填充法 相比宏命令,公式填充法更便于理解 ,不过需要手工操作的步骤稍微多一些 ,“,“鱼和熊掌不 可得兼”,要用哪种方法就看你的爱好了。 首先打开要操作的 Excel工资表,为了不破坏原表(S heet1)结构,我们仍然采用在S hee t2 中进行操作的方法。由于这个工资表一共有L 列,18行,要复制的表头项目在第二行, 所以在第一个单元格中输入如下公式: IF(MOD(ROW(), 2)=0,INDEX (sheet1!$A: $L,INT(((ROW () 1)/2))1)/2)) 2,CO L UM N()),sheet1!A$2)$2) 接下来的工作就简单了,我们只要使用填充柄将此公式填充到其它单元格,列向填充到 L 列,行填充到 18行就大功告成。 因为在不同的表格中这个公式需要修改的地方比较多,所以这里做一下解释: 由于工资条中的奇数行都是表头,偶数行是数据,所以在这个公式中首先进行奇偶行判 断,若是奇数行,直接取工资表的 A 2单元格数据(即公式中的 she et1!A$2,如果表头数 据在第 4 行第三列则修改为 she et1!C$4)。若是偶数行,则用 IND EX()函数来取数。 该函数的第一个参数是指定工资表中的一个取数区域(即 sheet1!$A:$L,如果不是从 A 到 L列,那么可以修改这个参数L列,那么可以修改这个参数,如修改为 sheet1!$B$P ,就表示在B到P 列之间取数)。当 然,如果你想把转换后的数据放在Shee t3 而不是She et2 中,那么,只要在 Sheet3中执 行以上操作就可以了,并不需要修改公式的内容。并不需要修改公式的内容。 -- -- 采用这种方法不能自动插入空行,给打印后的裁减带来了一定的麻烦,所以,建议在做完 后在全选所有单元格,通过调整行高和列宽来解决这个问题。 方法三 :Wo rd 邮件合并法 对于宏和公式运用不太熟练的朋友别着急,这里还有一招等着你。 首先我们确定好主文档(工资条表格)和数据源(E xce l或A cce ss 格式的记录表)

文档评论(0)

1亿VIP精品文档

相关文档