文档详情

利用Excel批量打印证照

m****
实名认证
店铺
DOCX
39.98KB
约6页
文档ID:481111036
利用Excel批量打印证照_第1页
1/6

利用Excel批量打印证照利用Excel批量打印证照 有时我们经常要制作证件卡片等资料,通常都是希望使用这样的思路:制作好样证,然后通过数据源如Excel提供的数据,将每条记录分别读入并显示到卡片上,再实现套打有人用Word的邮件合并接合Excel实现过,其实我们完全可以利用Excel这一个软件来实现 一、建立数据源和样证首先在Excel的Sheet1中建立三个字段:考号、姓名、照片,分别输入数据,插入图片: 制作一张如图所示空白准考证: 在Sheet2中左上角插入制作的准考证,调整到合适的位置 二、准备建立数据关联在Sheet2中A20单元格(视情况而定)输入"考号"、B20处输入"姓名"在A21单元格中输入1,在B21单元格中输入:=IF(VLOOKUP(A21,Sheet1!A2:B4,2)=0,"",VLOOKUP(A21,Sheet1!A2:B4,2)),这里的意思是从Sheet1中A2到B4区域中垂直查找Sheet2中A21单元格的值(即1),如果找到则返回相应行的第2列(即姓名列)的值,如果操作正确的话,确认后,B21将显示"阿狗",如果还有其他数据字段可依此类推,这样就建立了准考证填充数据与Sheet1表中数据的关联。

执行"视图→工具栏→绘图"命令,打开绘图工具栏,在准考证的考号部位插入一个矩形框,然后在地址栏中的编辑栏内输入"=A21",即该矩形框中显示A21单元格的内容;同样的在姓名处插入一个矩形框,输入"=B21",使之与B21关联利用Shift键选中所有矩形框,双击选择区域,设置矩形框格式,主要是字体、大小、颜色、填充色和线条色等 三、定义名称,导入照片关联照片比关联数据要复杂一些可采用定义名称的办法:执行"插入→名称→定义"命令,打开如图所示"定义名称"对话框,输入名称"A",在"引用位置"文本框中输入公式"=OFFSET(Sheet1!$A,0,0,COUNTA(Sheet1!$A:$A),1)",确定,该公式建立了查询数据的动态地址 用同样方法,再定义另一个名为"X"的名称,里面包括公式"=INDIRECT(ADDRESS(MATCH(Sheet2!$A,A,0),3,1,"Sheet1"))",该公式表示当动态地址栏为Sheet2表中A21单元格数值时,返回Sheet1表中第3列即照片所在列单元格内容执行"视图→工具栏→控件工具箱"命令,打开控制工具箱: 点击图像控件,在准考证照片处画出一个合适大小的图片框,选中该图片框,在编辑栏中将公式改成"=X",这样图片框中就显示出了照片: 四、制作查询和打印按钮在Sheet2中A19单元格中输入"打印第",在B19单元格中输入1,在C19单元格中输入"页至第",在D19单元格中输入4,在E19单元格中输入"页"。

选中A21单元格,在编辑栏中输入"=B19",使A21与B19建立关联执行"视图→工具栏→窗体",打开窗体工具箱,点击微调项控件,在F19单元格画出一个微调项控件按钮,右击该按钮,打开"设置控件格式"对话框: 点击"单元格链接"右边的图标,选择B19单元格,与之建立链接,确定这样,调节按钮就可以改变学号,显示不同的考生信息再从窗体工具箱中在微调项按钮的右边画一个按钮控件,选择该按钮,将按钮上文字改为"打印",接下来就要为打印按钮添加代码了执行"工具→宏→Visul Basic编辑器"命令,在Visul Basic编辑器中选择"插入→模块",在代码窗口输入以下代码: Sub打印 Range("A1","H8").Select'设置选择区域,该区域应覆盖准考证 ActiveSheet.PageSetup.PrintArea=Selection.Address'设置打印区域为所选区域,保证只打印准考证 ActiveWindow.SelectedSheets.PrintOut Copies:=1,Collate:=True'开始打印 Call dy'调用子程序更改考生信息并继续打印 End Sub Sub dy Dim a,b a=Sheets("Sheet2").Cells(19,2).Value b=Sheets("Sheet2").Cells(19,4).Value If ab Then a=a+1 Sheets("Sheet2").Cells(19,2).Value=a Call打印 End If End Sub 五、其他说明上面的例子中每个准考证都是分页打印,如果需要在一页中打印多个准考证,可以通过复制的方法复制出模板,用类似的方法关联数据和照片,设置微调项控件的格式,将其步长设置为2(若一页中打印两个准考证)。

然后在Visul Basic编辑器中将"a=a+1"改为"a=a+2" 在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值当比较值位于数据表首列时,可以使用函数VLOOKUP代替函数HLOOKUP语法:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)Lookup_value为需要在数组第一列中查找的数值Lookup_value可以为数值、引用或文本字符串Table_array为需要在其中查找数据的数据表可以使用对区域或区域名称的引用,如果range_lookup为TRUE,则table_array的第一列中的数值必须按升序排列,否则不能返回正确的数值,默认为FALSETable_array的第一列中的数值可以为文本、数字或逻辑值文本不区分大小写Col_index_num为table_array中待返回的匹配值的列序号Col_index_num为1时,返回table_array第一列中的数值;依此类推如果col_index_num小于1,返回错误值值#VALUE!;如果col_index_num大于table_array的列数,函数VLOOKUP返回错误值#REF!。

Range_lookup为一逻辑值,指明函数VLOOKUP返回时是精确匹配还是近似匹配,默认为TRUE,表示返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value的最大数值;否则返回精确匹配值如果找不到,则返回错误值#N/A看下面一个例表:=VLOOKUP(1,A2:C10,2)在A列中查找1,并从相同行的B列中返回值(2.17)=VLOOKUP(1,A2:C10,3,TRUE)在A列中查找1,并从相同行的C列中返回值(100)=VLOOKUP(.7,A2:C10,3,FALSE)在A列中查找0.746因为A列中没有精确地匹配,所以返回了一个错误值(#N/A)=VLOOKUP(0.1,A2:C10,2,TRUE)在A列中查找0.1因为0.1小于A列的最小值,所以返回了一个错误值(#N/A)=VLOOKUP(2,A2:C10,2,TRUE)在A列中查找2,并从相同行的B列中返回值(1.71) 语法:=offset(基点,向下偏移行数,向右偏移列数,引用区域的高,引用区域的宽)基点可以是一个单元格,也可以是一个连续单元格区域,但offset会把区域的最左上单元格作为基点引用区域的高,即行数引用区域的宽,即列数例如在上图中:=offset(A1,1,1,1,1)//就是从A1开始,向下移一行即第2行,向右移1列,即B列,这时获得的单元格引用为B2,它是新引用单元格区域的基点,该区域的高为1行,宽为1列,亦即该公式的结果就是B2=offset(A1,1,0,3,2)//这个公式的结果是以A2为基点,区域为A2:C5 返回在指定方式下与指定数值匹配的数组中元素的相应位置。

语法:MATCH(lookup_value,lookup_array,match_type)Lookup_value代表需要在数据表中查找的数值;Lookup_array表示可能包含所要查找的数值的连续单元格区域;Match_type表示查找方式的值(-1、0或1),-1表示查找大于或等于lookup_value的最小数值,Lookup_array必须按降序排列;1表示查找小于或等于lookup_value的最大数值,Lookup_array必须按升序排列;0表示查找等于lookup_value的第一个数值,默认为1例如在上图中:=Match(A2,B2:C10,0)//在B2:C10区域中查找0.457,显然查找不到 以文字形式返回对工作簿中某一单元格的引用语法:ADDRESS(row_num,column_num,abs_num,a1,sheet_text)Row_num是单元格引用中使用的行号;Column_num是单元格引用中使用的列标;Abs_num指明返回的引用类型(1或省略为绝对引用,2绝对行号、相对列标,3相对行号、绝对列标,4是相对引用);A1是一个逻辑值,它用来指明是以A1或R1C1返回引用样式。

如果A1为TRUE或省略,函数ADDRESS返回A1样式的引用;如果A1为FALSE,函数ADDRESS返回R1C1样式的引用Sheet_text为一文本,指明作为外部引用的工作表的名称,如果省略sheet_text,则不使用任何工作表的名称例如:=ADDRESS(1,4,4,1)//返回D1 返回由文字串指定的引用此函数立即对引用进行计算,并显示其内容当需要更改公式中单元格的引用,而不更改公式本身,即可使用该函数语法:INDIRECT(ref_text,a1)Ref_text是对单元格的引用,此单元格可以包含A1样式的引用、R1C1样式的引用、定义为引用的名称或对文字串单元格的引用;A1为一逻辑值,指明包含在单元格ref_text中的引用的类型如果a1为TRUE或省略,ref_text被解释为A1-样式的引用如果a1为FALSE,ref_text被解释为R1C1-样式的引用例如:如果单元格A1存放有文本B1,而B1单元格中存放了数值68.75,则公式"=INDIRECT($A)"返回68.75 。

下载提示
相似文档
正为您匹配相似的精品文档