Нужно решить такую задачу, чтобы из списка в эксель как-то на диске создавались файлы *.docx с названиями из списка. Например, в эксель список Москва Пенза Псков Воронеж
нужно, чтобы на диске создались 4 пустых *.docx с названиями этих городов.
Делаете шаблон своего документа, затем в цикле по списку делаете копии этого шаблона с нужным названием - Вам ведь не просто нужен пустой лист, а наверняка нужно какое-то наполнение, а такой подход самый практичный и простой для такой задачи.
Hugo, да, наполнение будет. Вообще планировалась такая задача. Нужно сделать много одинаковых файлов по одному шаблону (ну типа, Здравствуйте, "имя", с вами заключен договор "номер", "город" и т.д.). Через слияние ворд и эсксель я могу сделать, чтобы были получены все нужные письма, но итоговый файл будет один и в нем все письма. То есть нужно сделать много пустых файлов ворд, туда копипастить нужные данные и давать названия городов. Я думал, как-то шаг создания массы вордовских файлов с названиями городов ускорить, чтобы потом просто открывать нужный файл и копировать туда готовое письмо.
Может так подойдет, но если документы заполнить и запустить макрос повторно то все файлы заменятся без предупреждения.
Скрытый текст
Код
Sub test()
Dim ApWord As Object, Wdoc As Object, i&
Set ApWord = CreateObject("Word.Application")
For i = 1 To 3
Set Wdoc = ApWord.Documents.Add
Wdoc.SaveAs2 Filename:=ThisWorkbook.Path & Application.PathSeparator & Cells(i, 1).Value & i & ".docx"
Wdoc.Close True
Next i
MsgBox "Создано документов Word - " & i - 1 & " шт."
End Sub
"Все гениальное просто, а все простое гениально!!!"
Nordheim, спасибо! Именно так я и хотел. Единственное, в названиях файлов, помимо города, добавляется порядковый номер Псков1.doc, Москва2.doc. Я, если честно не знаю VBA, интуитивно пытался найти, что отвечает за добавление цифр к названию и убрать, но выдает ошибку.
И получили кучу пустых файлов. А если брать шаблон с предопределёнными полями, то их можно по ходу дела ещё и заполнить данными из Экселя, из той же строки, где город прописан. И такие примеры наверняка тут на форуме были, а может и в приёмах есть.
Hugo, благодарю, поищу пример на форуме, тоже неплохая идея. Хотя все было бы намного проще, если бы Ворд делал слияние на отдельные листы, а не в 1 файл. Так он все закидывает в один многостраничный файл, и приходится изощряться.
только учитывайте, что метод Find в Word, при вызове из VBA вставит единовременно текст не более 255 символов(аргумент ReplaceWith). Если больше - получите ошибку.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
а лучше в Работе сразу написать ТЗ и за деньги все сделать, как Вам хотелось бы со всеми копи пастами. Думаю, много денег не возьмут. Но Вам будет намного удобнее и лучше