未来Mac下载

mac.macxz.com

Excel批量打印带图片的表格

时间: 浏览次数:1844 编辑:小马甲

  要打印已经加入字段的带照片的表格,用VPF报表功能就可以轻松实现,但是如果数据都是用Excel录入的怎么办呢?少量的可以用VFP,将工作表转换成DBF格式,并将图片复制成一个个单独的图片文件,但是要是量比较大这样就太麻烦了。下面小编教大家一个办法,下面用打印准考证为例:

图1

  1. 设计套打模板,建立数据关联

  图2是空白准考证样式,先用扫描仪将准考证扫描,并保持大小尺寸不变,然后将图片保存为JPG格式。打开Sheet2工作表,将刚才保存的图片插入表中,并将图片设定为非打印对象。执行“视图→工具栏→绘图”命令,在准考证需填充文本的部位插入矩形框。我们用VLOOKUP函数实现Sheet1工作表中数据与Sheet2表中准考证间的关联(照片填充部分除外)。

  首先将A21单元格作为查询的关键数值,在A20 —G20单元格中分别输入[序号]、[姓名]、[级别]等字段。在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单元格中的数据建立了联系。只要单元格数据变化,则矩形框数据也跟着变化,其他依此类推。这样,只要在A21单元格输入序号值,那么Sheet1表中相应序号行的数据就会在准考证模板中自动生成。上述工作完成后,按“Shift”键选中所有矩形框,设置矩形框格式,包括字体、大小、对齐、颜色和线条等,特别是选中无填充色和无线条色。

图2

  2. 定义名称,导入照片

  通过VLOOKUP函数虽然建立了工作表1和准考证的联系,但要在准考证中自动生成照片则需要用到比较复杂的函数,采取定义名称的办法 。具体步骤如下:

  (1)定义名称:执行“插入→名称→定义”命令,打开如图3所示“定义名称”对话框,将名称定义为“A”,在“引用位置”文本框中输入公式 “=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列即照片所在列单元格内容。

图3

  (2)导入图片:选取sheet2工作表,执行“视图→工具栏→控件工具箱”命令,打开“控制工具箱”窗口。点击图像框或文字框按钮,在准考证需要填充照片的位置画出相同大小的图片框或文字框。选取文字框(图像框)后,将编辑栏中“=EMBED("Forms.TextBox.1",""”改成 “=X”,如图4,这样只要A21单元格数值变化时,照片框中相应的照片就会发生变化。

图4

  3. 制作微调按钮,编写宏代码

  为操作更加方便,可以制作微调按钮调节序号值。执行“视图→工具栏→窗体”,打开窗体对话框,点击微调项标志按钮,建立微调按钮,右击按钮,打开“设置控件格式”对话框,并与B19单元格建立链接,按下〔确定〕按钮。选中A21单元格,在编辑栏中输入“= B19”,此时点击微调按钮,就可自动调节B19和A21单元格序号值,对应的数据就会在模板中自动生成,效果如图5。接下来就是打印了。

图5

  执行“工具→宏→Visul Basic编辑器”命令,在Visul Basic编辑器中选择“插入→添加模块”,在代码窗口输入以下代码:

  Sub 打印()

  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

  Call dy

  End Sub

  Sub dy()

  Dim a%, b$, c$, abc$

  a = Sheets("Sheet2").Cells(19, 2).Value

  b = Sheets("Sheet2").Cells(19, 4).Value

  (说明:a即B19单元格,是图5中打印第×页至第×页中的起始页,b即D19单元格,是终止页。)

  If a < b Then

  a = a + 1

  Sheets("Sheet2").Cells(19, 2).Value = a

  Call 打印

  End If

  End Sub

  Private Sub CommandButton1_Click()

  Call 打印

  End Sub

  输入完成后,保存关闭VBA编辑窗口返回工作表状态。同制作微调按钮一样,制作一个〔打印〕按钮,并指定刚才建立的“打印”宏。将A1:F13所在的单元格区域设定为打印区域,设定打印起止页,按下〔打印〕按钮即可打印了,也可点击微调按钮,查询到相应的打印内容,然后打印当前页。当然其中的图片及按钮不会打印出来。

客服QQ:

客服微信

返回顶部