如何精确排版到毫米并批量打印多张带相片的员工表(上)

批量制作员工信息表格,通常的手段,都是用word的“邮件合并”功能。word的邮件合并功能有这样一些不足:

一、表格排版不够方便,尺寸难以精确控制,比如想要精确表格所有尺寸到毫米级,想想就觉得可怕。

二、生成的word体积很大,如果有1000张表格要打印,这些表格都要全部导入到word中,导致word文件体积巨增。打开文件和打印都让电脑卡到爆……

三、导入的图片也不方便定位,也不方便随单元格移动

四、批量修改表格中的内容也很麻烦。

所以我想到放弃word邮件合并这一过时的想法,直接使用excel来完成这个任务。这个任务比较大,我想分上下两篇共4步来完成。

如果有同学想学习word"邮件合并"功能可以自行到网上搜索学习。我怕我还没写完,就有同学说,word邮件合并不香么?

网络言论比较自由 ,大家喜欢什么不喜欢什么都可以自由表达。同学们都有表达的权利、也有选择的权利。前面我做软件功能来简化vlookup,有网友说index+match不香么?我说VB是VBA的升级方向,也有网友说vb6已经落后了。如果我写VB.net仍然有网友说vb.net也要被微软放弃了……

完成一个任务,可以手工操作、可以菜单命令操作、可以公式、可以录制宏、可以VBA,可以用第三方插件,可以自己写程序做工具。写程序可以用VB6、vbnet或者C#,这都可行,这些我都支持。我也在学习通过编程来弥补自己知识缺陷,更快进步。

比如我今天要做的这个“精确排版,并批量打印多张带相片的员工表”这个任务,手工做这个表格,我可能比不上在excel圈成名许久的大佬,有大佬可以手工做得很好,但是我今天说的重点是批量:

批量设置行列宽度、批量复制模板,批量填入数据和图片。

言归正传:

=========第一步=========

手工制作一张excel表格sheet1,在表格的最右一列和最下一行标明将要设置的行高,列宽的毫米数。这张表格的行列宽度的毫米数值,请按需求标明。如果有现成的表格,想做得跟纸质表格完全一致,可以手工用直尺量一下毫米数值,如下图:

然后把这张表整体复制到sheet2, 去掉所有设置的行高列宽数值。

打开探索excel工具箱,选择左侧功能“[210124-1]精确控制行高列宽为毫米mm”设置参数:

左表表示要设置的目标表格,这里批sheet2;

右表表示模板配置表sheet1,“右表右下格”表示最右下角的单元格,程序将依据这个定位点来确定行高列宽的数值。

填写完点“执行”,程序将自动完成所有行列的行高列宽设置。这个sheet2将作为模板来使用。

设置行高列宽的VBA命令是:

sheet.rows(n).RowHeight=行高

sheet.columns(n).ColumnWidth=列宽

行高列宽的数值默认是pt,如果要设置成毫米mm数,程序要经过pt、inch、dpi、twip多个数值的综合换算。换算可以精确到毫米不差。

=========第二步=========

批量复制这个sheet2模板无数个,并自动分页。

选择功能“[210124-2]批量复制表格模板并分页”,设置参数:

"复制行数":22,"复制次数":80

这个参数表示在sheet2中复制第1行到22行,共80次,并且在第22行自动分页,这样可以保证每一张表格都打印在同样的起始位置。执行完成后可以通过打印预览,查看每一页。

未完待续.....

举报
评论 0