分三步。
第一步,把数据区域定义一个名称。比如:把图一的A3单元格到图一的最右下角的单元格定义名称为ABCDE,目的是方便引用这个区域的数据。
第二步,完成一条记录的打印表。在图二的工作表上进行。找一个不需要打印出来的单元格,比如M1单元格里输入1(对应图一表的序号为1的记录,如果输入2,则对应图一表的序号为2的记录,设置打印区域,打印区域不要包含M1单元格),在C2单元格输入引用的姓名的公式:=vlookup(M1,ABCDE,2,FALSE);(注公式中的2是因为ABCDE区域中,姓名是第2列);从图二上看,应当是在G5单元格输入引用身份证的公式:=vlookup(M1,ABCDE,3,FALSE);(注公式中的3是因为ABCDE区域中,身份证是第3列);依次类推,在图二表的不同单元格里用vlookup函数引用图一表的ABCDE区域中的相应数据。完成公式,设计好格式。如果在M1单元格中输入5,那么显示的就是图一表第5人的数据,……,此时,可单个打印。
第三步,用程序批量打印(不要点打印按钮)。
ALT+F11,插入模块,复制下面的代码:
Sub AABBCC()
Dim N As Long
For N = 5 To 10 '注意列改5 和 10 这两个数
[M1] = N
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next
End Sub
运行时,首先单击图二表的任意单元格。再更改N后面的5和10,比如N=11 TO 30,即表示从序号11一直打印到序号30,这20个人的表格,试验过程中,一次打印人数不要多,再点运行\运行子过程……