У меня была похожая проблема со вставкой неформатированных значений из ячеек в размеченные закладками места в Word. Ошибки периодически вылазили на этой строке:
Перенос файла шаблона в папку шаблонов по умолчанию не помог. Насколько понимаю проблемы возникают при вызове функций Word из VBA, запущенном в Excel, но до конца в причинах я так и не разобрался. Заменил Copy/Paste на вставку значения текстовой переменной. Самое интересное, что один Selection.Copy / Selection.PasteAndFormat (wdFormatPlainText) в самом конце макроса работает корректно, но как только вставляю в макрос несколько - вылазят ошибки.
Код
Sub CreateLetter()
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim SaveAsName As String
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Add(Template:="C:\____.dotx", NewTemplate:=False, DocumentType:=0)
With wdDoc
Text = Cells(6, 2).Text
.Application.Selection.Goto wdGoToBookmark, , , "Должность"
.Application.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Application.Selection.InsertAfter (Text)
Text = Cells(6, 1).Text
.Application.Selection.Goto wdGoToBookmark, , , "Организация"
.Application.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Application.Selection.InsertAfter (Text)
Text = Cells(6, 3).Text
.Application.Selection.Goto wdGoToBookmark, , , "Кому"
.Application.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Application.Selection.InsertAfter (Text)
Text = Cells(6, 4).Text
.Application.Selection.Goto wdGoToBookmark, , , "Обращение"
.Application.Selection.InsertAfter (Text)
Text = Cells(2, 11).Text
.Application.Selection.Goto wdGoToBookmark, , , "Должность_подписант"
.Application.Selection.InsertAfter (Text)
Text = Cells(2, 10).Text
.Application.Selection.Goto wdGoToBookmark, , , "Подписант"
.Application.Selection.InsertAfter (Text)
Text = Cells(1, 10).Text
.Application.Selection.Goto wdGoToBookmark, , , "Исполнитель"
.Application.Selection.InsertAfter (Text)
Text = Cells(1, 11).Text
.Application.Selection.Goto wdGoToBookmark, , , "Телефон"
.Application.Selection.InsertAfter (Text)
ActiveSheet.PivotTables("Заезжающие").PivotSelect _
"'[#Inbox люди].[Фамилия Имя Отчество].[Фамилия Имя Отчество]'[All]", _
xlLabelOnly + xlFirstRow, True
Selection.Copy
.Application.Selection.Goto wdGoToBookmark, , , "Список"
.Application.Selection.PasteAndFormat (wdFormatPlainText)
.SaveAs2 Filename:=("D:\_______ & Format(Now, "yyyy-mm-dd hh-mm-ss") & ".docx"), _
FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False
.Close
End With
wdApp.Quit
End Sub