一般制作带图片的准考证通过邮件合并以及域的处理可以实现,详情可以参照之前的文章,地址如下:
但有时候因为数据已在EXCEL中成型,不再适合用邮件合并的功能。则可以通过VBA来实现。
如图1,需要将名为“考生信息表”(工作簿)中的“信息”工作表中的数据填入名为“准考证”(工作簿)中“准考证”工作表中,同时要插入相应图片(与名字一一对应)。

(图1)
如果不想一张张插入图片,且一张张表格另存为,这时候可以用VBA来实现办公自动化:
在打开的“准考证”工作表中,按【ALT+F11】换出VBE界面,插入【模块】,输入如下代码:
Sub 制作准考证()
Dim fn As String, wb As Workbook, sht AsWorksheet
fn = ThisWorkbook.Path & "\"& "考生信息表.xls"
Set wb = GetObject(fn)
Set sht = wb.Worksheets("信息")
Dim i As Integer
i = 3
Do While sht.Cells(i, "B")<> ""
Range("B2").Value =sht.Cells(i, "B")
Range("B3").Value =sht.Cells(i, "C")
Range("B4").Value =sht.Cells(i, "D")
Range("D4").Value =sht.Cells(i, "E")
ThisWorkbook.Worksheets("准考证").Shapes.SelectAll
Selection.Delete
Worksheets("准考证").Shapes.AddPictureThisWorkbook.Path & "\" & Range("B2") &".jpeg", True, True, Range("D2").Left + 2,Range("D2").Top + 2, _
Range("D2").Width - 2,Range("D2").Height + Range("D3").Height - 4
ThisWorkbook.SaveCopyAs"C:\Users\Administrator\Desktop\Excel技巧文章\11.在EXCEL中插入指定的图片,并另存为指定文件名\准考证存放处\" & Range("B2")& ".xls"
i = i + 1
Loop
End Sub
然后“运行”就可以了。
如图2所示。

(图2)
打开存储准考证的路径,就可以得到所需要的结果如图3所示。

(图3)
【备注】
1.该代码的重点是:用了工作表addpicture的方法来插入图片;
2.保存路径是是savecopyas的路径;
3.用delete删除插入的图片以便重新循环而导致的图片叠加。
4.含注释的图片如下(如图4):

(图4)
Tips1:主要要理解worksheet的addpicture方法,AddPicture(FileName、链接到文件、随文档保存、 Left、 Top、 Width、 Height),第一个参数是所插入图片存储的路径,最后四个是插入图片所在的位置参数,中间两个参数是连接与保存,一般是true。
Tips2:因我图片的后缀均为“.jpeg”,所以在addpicture中有相应的后缀表述,如果是其他格式,如“.bmp”、“.png”等其他格式,需要作相应的修改。
tips3:如果有名字重复的,可以用身份证号来处理。
Tips4:如果文章中有误的地方,麻烦多多指正,感谢!
Tips5:万丈高楼平地起!




