Word 邮件合并

 

这两天遇到一个问题,客户需要将数据库中的应聘信息通过word打印出来,于是我们就把数据库记录导出到Excel文件中,客户自行制作word模版文档,然后使用邮件合并功能打印Excel中的数据,但在处理应聘者的像片时遇到一个问题。

 

Excel文件中存储的是应聘者的像片文件路径,但在word打印的时候,需要打印出实际的像片,由于数据比较多(2000条左右),一个一个去插入像片实在不可取,于是想继续用插入域的方式来处理:

 %E9%82%AE%E4%BB%B6%E5%90%88%E5%B9%B61.gif

理论上应该是可以的,实际使用的时候就发现,总是显示第一张像片,需要手工按F9来刷新像片,如果使用“合并到新文档”后,就根本不能刷新了。这的确是个头痛的问题。

 

折腾了半天,制作了一个宏:

Sub 预览()

'

' 预览 Macro

' 宏在 2005-2-25 由 xxx 录制

'

Dim data As MailMergeDataSource

Set data = ActiveDocument.MailMerge.DataSource

data.ActiveRecord = wdFirstDataSourceRecord

Selection.Fields.Update

For i = 1 To data.RecordCount

ActiveDocument.PrintPreview

MsgBox ("第" + Str(i) + "条记录打印完毕。")

'ActiveDocument.PrintOut

data.ActiveRecord = wdNextRecord

Selection.Fields.Update

Next

End Sub

 

呵呵,很笨吧,首先定位到第一条记录,然后刷新像片(打开文档的时候,首先要选中像片域),打印,移到下一条记录,直到所有记录都打印完毕。

 

虽然这样把问题解决了,可总觉得不爽,而且不能合并到新文档,如果要再作一些处理,或者只打印几个总是不方便。想一想,如果模版文档只是插入INCLUDEPICTUR域代码而不是实际的像片,由合并后的文档来实现实际的像片插入那就更合适了。

 

通过在Office Online网站上查找关于域的资料,发现有一个SET域可以设置标签,于是就这样来处理:

 %E9%82%AE%E4%BB%B6%E5%90%88%E5%B9%B62.gif

 %E9%82%AE%E4%BB%B6%E5%90%88%E5%B9%B63.gif

呵呵,真还可以了,合并后的文档中,包含了这样的内容:

 %E9%82%AE%E4%BB%B6%E5%90%88%E5%B9%B64.gif

切换到域结果视图(Ctrl+F9),然后全选(Ctrl+A),再按F9更新域,一切OK

 

转载于:https://www.cnblogs.com/eng21/archive/2005/02/25/109181.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值