如何将邮件合并文档保存到模板中?

时间:2013-11-21 14:47:14

标签: vba ms-word word-vba word-2010

您好我对这个VBA编程很新,我非常感谢您的帮助。我想要做的就是将邮件合并文档保存到模板中。

我正在使用 ActiveDocument.AttachedTemplate 属性,这似乎不起作用。 下面的代码片段。请帮忙。我能够正确地邮寄文件。

                ActiveDocument.AttachedTemplate = "C:\Users\xx\Dev\Letterhead.docx"
                With ActiveDocument.MailMerge
                .Destination = wdSendToNewDocument
                .SuppressBlankLines = True
                With .DataSource
                    .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
                    .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
                End With

                .Execute Pause:=False 

1 个答案:

答案 0 :(得分:0)

如果您的意思是“另存为Word模板”,并且您的意思是真正的Word模板(.dotx或.dotm),那么.Execute之后您需要的是以下内容。如果你的意思是其他的,请澄清你的问题。

ActiveDocument.SaveAs2 "the full path name of the .dotx", wdSaveFormat.wdFormatXMLTemplate

ActiveDocument.SaveAs2 "the full path name of the .dotm", wdSaveFormat.wdFormatXMLTemplateMacroEnabled

如果您的意思是“另存为.docx”,那么它将是

ActiveDocument.SaveAs2 "the full path name of the .docx", wdSaveFormat.wdFormatXMLDocument

您可能会惊讶于它使用ActiveDocument,但事实是当合并完成后,Output文档将成为ActiveDocument。因此,在合并之前引用ActiveDocument通常是个好主意,例如

Dim mmmd As Word.Document
Set mmmd = ActiveDocument
With mmmd.MailMerge
'...
  .Execute Pause:=False

' At this point you can use the mmmd object reference 
' to do something to the mail merge main Document, 
' and ActiveDocument to manipulate the output

End With
Set mmmd = Nothing