同学要做一个邮件合并的程序,请各位帮忙看下,多谢!
问题如下:
我想在word邮件合并(mailmerge)中保存每一条记录到单独的文档,但是我不懂VBA,于是
在网上搜到这样一坨代码,但是把代码粘贴到主文档里,运行出现错误,run的时候弹出
一个框说datasource empty or cannot find data source,可是鼠标放在myname、Acti
veDocument上也能正确显示应该出现的数据。debug时,.parent.execute那一行标黄了,
不知是什么情况?
P.S. 有没有什么办法能直接保存成pdf呢?
谢谢!
代码如下:
SubmyMailMerge()
'主文档的类型为信函
'合并全部数据记录
'假设主文档已链接好数据源,可以进行正常的邮件合并
Dim myMergeAs MailMerge, i As Integer, myname As String
Application.ScreenUpdating= False
Set myMerge =ActiveDocument.MailMerge
WithmyMerge.DataSource
If .Parent.State = wdMainAndDataSource Then
.ActiveRecord = wdFirstRecord
For i = 1 To .RecordCount
.FirstRecord = i
.LastRecord = i
.Parent.Destination =wdSendToNewDocument
'取得数据源第4个(合并域)的当前数据字符串,用以命名文件,根据需要
增减修改
myname = .DataFields(4).Value
.ActiveRecord = wdNextRecord
.Parent.Execute '每次合并一个数据记录
With ActiveDocument
.Content.Characters.Last.Previous.Delete '删除分节符
.SaveAs"C:\" &myname & ".doc" '保存文档
Selection.WholeStory '全选文档
Selection.Fields.Unlink '转换为纯文本
ActiveDocument.Save '保存文档
.Close '关闭生成的文档(已保存)
End With
Next
End If
End With
Application.ScreenUpdating= True
End Sub