Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2009, 11:23   #21
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

А зачем менять текст в шаблоне? Шаблон правится вручную, только для того, чтобы задать необходимое форматирование, вставить необходимые поля, добавить текст, который не изменяется, добавить закладки. При создании документа на основе этого шаблона, содержимое закладок изменяется соответствующим образом.
А открыть шаблон для редактирования можно как обычный документ, через Documents.Open.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.09.2009, 17:11   #22
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
...
Я немного переделал шаблон документа. В те места, куда нужно вставлять данные из таблицы, я поставил закладки с соответствующими именами. В таблице на второй странице, где эти данные просто дублируются, я поставил перекрестные ссылки на эти закладки.
Файл Excel я, соответственно, тоже изменил: добавил свою процедуру обновления закладок, удалил ссылку на библиотеку Word, при сохранении документа он теперь не добавляется в список недавних файлов. Имена закладок берутся из ячеек первой строки, только перед использованием из них удаляются все пробелы и фигурные скобки. У меня все работает, надеюсь у тебя тоже заработает.
Намного удобней стало чем раньше!!! единственное это то, что закладки теперь нужно в шаблоне делать, а раньше пользовался этим:

Код:
Sub CreateDocs()
    Dim WA As New Word.Application
    Dim WD As Word.Document, ra As Word.Range
    Set WD = WA.Documents.Add(ThisWorkbook.Path & Application.PathSeparator & "шаблон.dot")
    With WA.Selection
        .HomeKey Unit:=wdStory: .EndKey Unit:=wdStory, Extend:=wdExtend
        .Copy
        For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            .Paste
            .EndKey Unit:=wdStory: .HomeKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{дата}", False, , , , , , , , Format(Now, "dd mmmm yyyy г."), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{фио}", False, , , , , , , , Cells(i, 1), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{должность}", False, , , , , , , , Cells(i, 2), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{отделение}", False, , , , , , , , Cells(i, 3), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{оклад}", False, , , , , , , , Cells(i, 4), True
            .EndKey Unit:=wdStory
        Next i
    End With
    WD.SaveAs ThisWorkbook.Path & Application.PathSeparator & "письма.doc"
    WD.Close False: WA.Quit False
End Sub
Прописывать теперь намного меньше надо...

Большое приогромное спасибо за это чудо, я думаю многим это пригодится!!!

P.S. А зачем пробелы удалять? а фигурные скобки можно вообще не ставить!!!

P.P.S. А можно сделать так, чтобы это все в один документ формировалось?

А то если много записей кажый раз открывать долго и печатать не удобно!!!

Последний раз редактировалось xamillion; 26.09.2009 в 17:57.
xamillion вне форума Ответить с цитированием
Старый 27.09.2009, 12:55   #23
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

xamillion, если каждая ваша запись (строка) Excel порождает отдельный лист документа Word и не требуется дополнительная обработка исходных данных (впрочем, простейшая возможна) - используйте стандартный механизм слияния MS Word.
Единый файл для удобной распечатки можно получить с помощью
http://www.eprintdriver.com/ePrintFilePrinter.html (shareware) или http://www.dopdf.com/ru/ (freeware)
Если же вы намерены генерировать документ Word самостоятельно, собственным макросом, можно добавлять шаблон для очередной
записи с помощью динамически добавляемого поля INCLUDETEXT (В этом посте пример как это делается: http://www.programmersforum.ru/showp...4&postcount=12). Или используйте метод InsertFile.

Последний раз редактировалось Aent; 27.09.2009 в 13:54.
Aent вне форума Ответить с цитированием
Старый 27.09.2009, 16:19   #24
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
если каждая ваша запись (строка) Excel порождает отдельный лист документа Word и не требуется дополнительная обработка исходных данных (впрочем, простейшая возможна) - используйте стандартный механизм слияния MS Word.
стандартный механизм слияния MS Word каждый раз вызывать для часто повторяющихся задач нудновато...

Цитата:
Единый файл для удобной распечатки можно получить с помощью
http://www.eprintdriver.com/ePrintFilePrinter.html (shareware) или http://www.dopdf.com/ru/ (freeware)
Не нашел я функции слияния в единый pdf-документ (Merge) в данных конвертерах... Не суть важно, если что - идея неплохая... как то этот вариант не пришел в голову...
Цитата:
Если же вы намерены генерировать документ Word самостоятельно, собственным макросом...
Именно то что я хотел, но в программировании слабоват еще, только учусь... Хотя уже направление движения определено - буду осваивать новые территории...
xamillion вне форума Ответить с цитированием
Старый 27.09.2009, 17:28   #25
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от xamillion Посмотреть сообщение
…P.S. А зачем пробелы удалять? а фигурные скобки можно вообще не ставить!!!…
Пробелы нужно удалять потому, что они не допустимы в именах закладок
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 27.09.2009, 17:48   #26
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Цитата:
Не нашел я функции слияния
Просто направляете поток печати после слияния на PDF принтер и всё ...
Aent вне форума Ответить с цитированием
Старый 27.09.2009, 18:01   #27
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Пробелы нужно удалять потому, что они не допустимы в именах закладок
теперь более чем понятно...

Цитата:
Сообщение от Aent Посмотреть сообщение
Просто направляете поток печати после слияния на PDF принтер и всё ...
а вот этого совсем не понял... что такое "поток печати"?

Постараюсь сделать макросом выгрузку в один документ, выложу как сделаю... если есть желание помочь, всегда рад... выкладывайте свои варианты...
xamillion вне форума Ответить с цитированием
Старый 30.09.2009, 22:27   #28
Silent-cry
 
Аватар для Silent-cry
 
Регистрация: 19.09.2009
Сообщений: 3
По умолчанию

YSL, а куда написать их? (имею ввиду коды)
Silent-cry вне форума Ответить с цитированием
Старый 01.10.2009, 23:08   #29
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
Сообщение от Silent-cry Посмотреть сообщение
YSL, а куда написать их? (имею ввиду коды)
может поможет...
Учебник "Программирование в Microsoft Office для пользователей"
Вложения
Тип файла: rar askit.rar (3.28 Мб, 571 просмотров)
xamillion вне форума Ответить с цитированием
Старый 17.02.2010, 14:38   #30
Smaug
 
Регистрация: 17.02.2010
Сообщений: 4
По умолчанию

кто-нибудь может мне помочь?
мне тоже нужно написать макрос,который из Excel забирал значения и засовывал в готовую таблицу Word (ее конечная форма у меня уже есть),чтобы можно было сразу на печать отправлять.
Smaug вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных из Excel в Word Volch Microsoft Office Excel 6 19.10.2008 20:36
Автоматический перенос данных из общего листа в другие InvoiceControl Microsoft Office Excel 3 02.10.2008 13:21
Перенос текста из Excel в Word Aleksandra Microsoft Office Word 3 23.09.2008 08:46
Перенос данных из MS Word в MS Excel ? Nickd5 Помощь студентам 2 28.06.2008 20:40
Интеграция таблиц excel в документ word SergeyPaterson Microsoft Office Excel 1 29.05.2008 23:39