Как сохранить почтовый документ в шаблон?

Привет, я совсем новичок в этом программировании на 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 ответ

Если вы имеете в виду "сохранить как шаблон 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, но факт заключается в том, что после завершения слияния выходной документ становится 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
Другие вопросы по тегам