《Excel应用实例--打印准考证.pdf》由会员分享,可在线阅读,更多相关《Excel应用实例--打印准考证.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ExcelExcel 应用实例应用实例-轻松套打带照片的准考证轻松套打带照片的准考证星期一刚上班,同事小张迎上来笑嘻嘻地说:“主任让你务必于今天上午将准考证打印出来,数据已录好了,照片已参加字段。想起今年第 11 期 F6 版?中国电脑教育报?的一篇?自己动手制作学生胸卡?的文章,我想用 VFP 的报表功能实现带照片的准考证套打,应该是很轻松的事。翻开小张递过来的数据盘,原来数据全部用 Excel 录入,照片作为其中的一个字段已放在单元格内如图1,如果用VFP,还需将工作表转换成DBF 格式,并将照片复制成一个个单独的图片文件,好几百人的照片,没有几天的功夫怕是完成不了任务的。还是在 Exce
2、l 上想想方法吧,看有没有捷径可走。通过探索,笔者终于将此问题解决了,现将方法介绍如下。1 1 设计套打模板,建立数据关联设计套打模板,建立数据关联图 2 是空白准考证样式,先用扫描仪将准考证扫描,并保持大小尺寸不变,然后将图片保存为 JPG 格式。翻开 Sheet2 工作表,将刚刚保存的图片插入表中,并将图片设定为非打印对象。执行“视图工具栏绘图命令,在准考证需填充文本的部位插入矩形框。我们用 VLOOKUP 函数实现 Sheet1 工作表中数据与 Sheet2 表中准考证间的关联照片填充局部除外。首先将 A21 单元格作为查询的关键数值,在 A20G20 单元格中分别输入序号、姓名、级别等
3、字段。在 B21 单元格中输入公式“=IF(VLOOKUP(A21,Sheet1!A2:I1000,2)=0,VLOOKUP(A21,Sheet1!A2:I1000,2),在 C21 单元格中输入公式“=IF(VLOOKUP(A21,Sheet1!A2:I1000,6)=0,VLOOKUP(A21,Sheet1!A2:I1000,6),其他依此类推。这样就建立了准考证填充数据与 Sheet1 表间的关联。下一步就是要建立数据与准考证相应矩形框的关联,以准考证中姓名字段为例,鼠标单击该矩形框,在编辑栏右侧输入“=符号,然后用鼠标点击需要填入数据的B21 单元格,这样矩形框就和 B21 单元格中的
4、数据建立了联系。只要单元格数据变化,那么矩形框数据也跟着变化,其他依此类推。这样,只要在 A21 单元格输入序号值,那么 Sheet1 表中相应序号行的数据就会在准考证模板中自动生成。上述工作完成后,按“Shift键选中所有矩形框,设置矩形框格式,包括字体、大小、对齐、颜色和线条等,特别是选中无填充色和无线条色。2 2 定义名称,导入照片定义名称,导入照片通过 VLOOKUP 函数虽然建立了工作表 1 和准考证的联系,但要在准考证中自动生成照片那么需要用到比拟复杂的函数,采取定义名称的方法。具体步骤如下:1定义名称:执行“插入名称定义命令,翻开如图 3 所示“定义名称对话框,将名称定义为“A,
5、在“引用位置文本框中输入公式“=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1),按下 确定 按钮返回。该公式建立了查询数据的动态地址。接着用同样方法,再定义另一个名叫“X的名称,里面包括公式“X=INDIRECT(ADDRESS(MATCH(Sheet2!$A$21,A,0),9,1,Sheet1),该公式表示当动态地址栏为 Sheet2 表中 A21 单元格数值时,返回 Sheet1 表中第 9 列即照片所在列单元格内容。2导入图片:选取 sheet2 工作表,执行“视图工具栏控件工具箱命令,翻开“控制工具箱窗口。点击图像框或文字框按钮,在准考证
6、需要填充照片的位置画出相同大小的图片框或文字框。选取文字框图像框后,将编辑栏中“=EMBED(Forms.TextBox.1,改成“=X,如图4,这样只要A21 单元格数值变化时,照片框中相应的照片就会发生变化。3 3 制作微调按钮,编写宏代码制作微调按钮,编写宏代码为操作更加方便,可以制作微调按钮调节序号值。执行“视图工具栏窗体,翻开窗体对话框,点击微调项标志按钮,建立微调按钮,右击按钮,翻开“设置控件格式对话框,并与B19 单元格建立链接,按下确定按钮。选中A21 单元格,在编辑栏中输入“=B19”,此时点击微调按钮,就可自动调节B19 和 A21 单元格序号值,对应的数据就会在模板中自动
7、生成,效果如图 5。接下来就是打印了。执行“工具宏Visul Basic 编辑器命令,在 Visul Basic 编辑器中选择“插入添加模块,在代码窗口输入以下代码:Sub 打印()ActiveWindow.SelectedSheets.PrintOut Copies:=1,Collate:=TrueCall dyEnd SubSub dy()Dim a%,b$,c$,abc$a=Sheets(Sheet2).Cells(19,2).Valueb=Sheets(Sheet2).Cells(19,4).Value说明:a 即 B19 单元格,是图 5 中打印第页至第页中的起始页,b 即 D19 单元格,是终止页。If a b Thena=a+1Sheets(Sheet2).Cells(19,2).Value=aCall 打印End IfEnd SubPrivate Sub CommandButton1_Click()Call 打印End Sub输入完成后,保存关闭 VBA 编辑窗口返回工作表状态。同制作微调按钮一样,制作一个打印按钮,并指定刚刚建立的“打印宏。将A1:F13 所在的单元格区域设定为打印区域,设定打印起止页,按下打印按钮即可打印了,也可点击微调按钮,查询到相应的打印内容,然后打印当前页。当然其中的图片及按钮不会打印出来。