Экспорт в Excel в Word VBA - документы Word не создаются - PullRequest
0 голосов
/ 09 мая 2019

Я запускаю экспорт из Excel в Word и не могу создавать / сохранять новые документы на основе шаблона.Каждый цикл снова открывает слово шаблон, заменяет значения << >> в шаблоне, а затем переходит к следующему.

(Справочная информация. У меня есть таблица в Excel, состоящая из 32 строк и 70 столбцов. Я создал соответствующий шаблон слова, состоящий из значений, которые нужно заменить из таблицы Excel (например, <>). На ходу, Он экспортирует значения на основе соответствующих тегов (например, <>) в листе Excel в Word Doc).Кажется, он работает, пока не доходит до WordDoc.SaveAs Имя файла

Я получаю ошибку:

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

на этом он останавливается и не создает шаблоны, а только изменяет файл шаблона.

Может кто-нибудь предложить решение этой проблемы?

Sub CreateWordDoc()
Dim BenefitRow, BenefitCol, LastRow As Long
Dim TagName, TagValue, Filename As String
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim WordContent As Word.Range
On Error Resume Next
With Sheets("VBA Output")


Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True 'Make visible



LastRow = .Range("A9999").End(xlUp).Row 'Determine last row
For BenefitRow = 4 To 6
Set WordDoc = WordApp.Documents.Open(Filename:=" template name.dotm", ReadOnly:=False) 'Open Template saved as .dotm
For BenefitCol = 1 To 79
TagName = .Cells(3, BenefitCol).Value 'Tag Name
TagValue = .Cells(BenefitRow, BenefitCol).Value 'Tag Value
With WordDoc.Content.Find
.Text = TagName
.Replacement.Text = TagValue
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll ',Forward:True, Wrap:wdFindContinue

End With
Next BenefitCol

Filename = ThisWorkbookPath & "\" & .Range("E" & BenefitRow).Value & ".docx"
WordDoc.SaveAs Filename
WordDoc.Close

Next BenefitRow
End With
WordApp.Quit

End Sub

1 Ответ

0 голосов
/ 09 мая 2019

Проблема (сообщение об ошибке), которую вы видите, возникает из-за открытия файла шаблона с последующим желанием сохранить его как «простой ванильный» документ.Это не то, как Word был разработан для использования, поэтому Word в основном говорит: «Вы уверены, что это то, что вы хотите сделать?»

Шаблон не должен открываться, если целью является изменениесам шаблон.В этом случае он будет снова сохранен как шаблон - сообщение не будет отображаться.

При создании новых документов из шаблона используйте метод Documents.Add:

Set WordDoc = WordApp.Documents.Add(Template:=" template name.dotm") 

Это автоматическисоздает копию шаблона - нет опасности перезаписать шаблон.И упомянутое в вопросе сообщение не появится при выполнении метода SaveAs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...