您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > 利用EXCEL批量生成准考证(带照片)
利用EXCEL批量生成准考证(带照片)在各类考试中,如果已有考生的Excel备案表(Sheet1),如图1,就可以通过设计准考证模板(Sheet2),如图2,编写程序建立宏,实现由备案表自动生成准考证(Sheet3),如图3。生成准考证的工作簿必须和考生的照片放在同一个文件里。图3自动生成的准考证(Sheet3)图2准考证模板(Sheet2)图1考生基本信息表(Sheet1)1建立宏打开宏对话框,在宏名的文本框中输入“准考证生成系统”,然后单击“创建”按钮,在打开的MicrosoftVisualBasic窗口中依次输入下面的程序代码:Sub准考证生成系统()'在该系统中,sheet1是以每个记录占一行的方式存放基础数据;'sheet2是所生成表格的模板,在sheet3中由此模板生成的表格用来存放一个记录;凡是表中不变的内容,可在模板中直接填上。'sheet3用来存放所生成的表格.DimxAsIntegerDimyAsIntegerDimiAsIntegerDimkAsIntegerDimjAsIntegerDimfAsIntegerDimzAsIntegerDimsAsIntegerDimwAsIntegerx=InputBox(请输入起始行号)'输入sheet1中要处理的记录的起始行号y=InputBox(请输入终止行号)'输入sheet1中要处理的记录的终止行号z=10000'z是所生成表格可能占有工作表的行数,只要所给的数据大于实际占用的行数就可以.s=12's是指模板所占的行数(包括表格前后预留的行数).w=14'w是指模板所占的列数Fora=xToyFori=2TozStepsn=i-1IfSheet3.Cells(n+3,4)=Then'是指所生成表格中关键字段(准考证号)所占的单元格是否为空;如果为空,则在该区间生成新的表,否则继续判断下一区间,'该语句中的n+3代表该关键字段在所生成表格中占的行数,4代表该关键字段在所生成表格中占的列数.f=iFork=1TosSheet3.Rows(f).RowHeight=Sheet2.Rows(k).RowHeight'用来格式化sheet3的行高f=f+1NextIfisThen'如果是生成第一个表,则应该格式化列宽Forj=1TowSheet3.Columns(j).ColumnWidth=Sheet2.Columns(j).ColumnWidth'用来格式化sheet3的列宽NextEndIfSheet2.SelectSheet2.Range(a1:n10).Copy'a1:n10是模板所在的区间Sheet3.SelectSheet3.Cells(i,1).SelectSheet3.PasteSheet2.Activate'将模板表格粘贴到所生成的表格上'以下各行是将数据源(sheet1)中的数据添加到所生成表格(sheet3)的指定单位格中Sheet3.Cells(n+3,4)=Sheet1.Cells(a,2)Sheet3.Cells(n+3,12)=Sheet1.Cells(a,2)Sheet3.Cells(n+4,4)=Sheet1.Cells(a,9)Sheet3.Cells(n+4,12)=Sheet1.Cells(a,9)Sheet3.Cells(n+5,3)=Sheet1.Cells(a,3)Sheet3.Cells(n+5,11)=Sheet1.Cells(a,3)Sheet3.Cells(n+5,6)=Sheet1.Cells(a,4)Sheet3.Cells(n+5,14)=Sheet1.Cells(a,4)Sheet3.Cells(n+6,4)=Sheet1.Cells(a,7)Sheet3.Cells(n+6,12)=Sheet1.Cells(a,7)Sheet3.Cells(n+7,6)=Sheet1.Cells(a,10)Sheet3.Cells(n+7,14)=Sheet1.Cells(a,10)sfz=Sheet3.Cells(n+6,4)'获得身份证号码sfz=sfz&.jpg'利用身份证号码生成照片的文件名Sheet3.Activate'设置sheet3为当前工作表ActiveSheet.Cells(n+2,1).SelectpicPath=ThisWorkbook.Path&\&sfz'定义插入图片的地址SetpicTemp=Sheet3.Pictures.Insert(picPath)'插入图片picTemp.SelectSelection.ShapeRange.LockAspectRatio=msoTrueSelection.ShapeRange.Height=95Selection.ShapeRange.Rotation=0#SetpicTemp=Nothing'重置图片对象ActiveSheet.Cells(n+2,9).SelectpicPath=ThisWorkbook.Path&\&sfzSetpicTemp=Sheet3.Pictures.Insert(picPath)'插入图片picTemp.SelectSelection.ShapeRange.LockAspectRatio=msoTrueSelection.ShapeRange.Height=95Selection.ShapeRange.Rotation=0#SetpicTemp=Nothing'重置图片对象ExitForEndIfNextNextEndSub2执行宏在EXCEL2003和2010及以上版本中打开宏对话框,选择“准考证生成系统”,然后单击“执行”按钮,在弹出的对话中,依次输入备案表中要生成准考证的起始行号和终止行号,并单击确定,就在表Sheet3中自上而下,连续生成备案表中从起始行到终止行范围内的所有考生的准考证。如果用来生成其它种类的准考证、成绩单、审批表、毕业证、胸卡等,只需要调整模板和程序代码中相应的参数,再经过一定的调试,就可得到满意的效果。Email:125331066@qq.com
本文标题:利用EXCEL批量生成准考证(带照片)
链接地址:https://www.777doc.com/doc-5649368 .html