|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.01.2009, 23:13 | #1 |
Регистрация: 26.01.2009
Сообщений: 4
|
Автоматический перенос данных с таблиц Excel в текст Word
Есть задача организовать автоматический перенос данных с таблиц Excel в текст Word, как и в какой версии это лутше сделать.
|
27.01.2009, 01:45 | #2 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Как — смотрите вопрос (внизу этой страницы) от "неправильно понятой" девушки по имени Aleksandra.
В какой версии лучше — да по большому счёту всё равно. Перечислите, какие именно действия Вы совершаете вручную (чтобы понять, что будет делать за Вас программа). А пока «пристрелочный» вариант. Все таблицы открытого документа он преобразует в табулированный (разбитый символами табуляции) текст. Код:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 27.01.2009 в 04:12. Причина: вопрос — а вообще как часто Вы сталкиваетесь с этой задачей? или это так, для общего развития? |
27.01.2009, 04:30 | #3 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Можно прикрепить и пример того, что должно получиться после вставки в Word. Если известно, какой диапазон ячеек является таблицей (например, [a2:g35]), то макрос для переноса займёт 3 строки... Кстати, тема неоднократно обсуждалась на форуме... Цитата:
--------------------- добавлено позже - вдруг кому окажется полезным ------------------------ Цитата:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 28.03.2012 в 11:14. |
|||
27.01.2009, 05:02 | #4 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Да это работало ещё в Windows 95 и 98.
И вообще офисные программы (Excel и Word) хорошо стыкуются.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 28.01.2009 в 02:05. |
29.01.2009, 22:07 | #5 |
Регистрация: 26.01.2009
Сообщений: 4
|
Есть документ excel в нем 9 столбиков, и 300 строк, №,фамилия, имя, отчество,серия паспорта, номер паспорта, кем выдан паспорт, дата выдачи паспорта,и идентификационный номер.
И есть документ word, с договором, нужно чтобы как то нажатием пару клавиш, переносить строчки из excel в определенные строчки в договоре. Если можно по подробней, что нажать, куда вставить, я новичок в этом. Спасибо. |
29.01.2009, 22:28 | #6 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Пролистайте эту страницу вниз - увидите список похожих тем.
В них Вы, скорее всего, найдёте ответ на свой вопрос. Поиском по форуму сможете найти ещё множество подобных тем, где уже не раз обсуждался этот вопрос. |
30.01.2009, 06:21 | #7 |
Регистрация: 26.01.2009
Сообщений: 4
|
Да спасибо, есть похожая тема
http://programmersforum.ru/showthread.php?t=28058 но есть проблема, вот макрос который я переделал для себя. 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, , , , , , , , 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, Extend:=wdExtend .Find.Execute "{номер}", False, , , , , , , , Cells(i, 5), True .EndKey Unit:=wdStory, Extend:=wdExtend .Find.Execute "{кім виданий}", False, , , , , , , , Cells(i, 6), True .EndKey Unit:=wdStory, Extend:=wdExtend .Find.Execute "{дата}", False, , , , , , , , Cells(i, 7), True .EndKey Unit:=wdStory, Extend:=wdExtend .Find.Execute "{ідентифікаційний}", False, , , , , , , , Cells(i, 8), True .EndKey Unit:=wdStory Next i End With WD.SaveAs ThisWorkbook.Path & Application.PathSeparator & "договора.doc" WD.Close False: WA.Quit False End Sub Проблема в том что данные в шаблоне word повторяются два раза, и фамилия,имя,отчество три раза, в верху и внизу документа. Этот код вставляет все по очереди,получается в верху договора одна фамилия а внизу другая, по списку следующая в таблице excel? а нужно чтобы каждая строка из excel повторялась два раза. И еще, как сделать чтобы все сохранялось в отдельных файлах, (название файла, например по фамилии) а не все в одном. Спасибо. Последний раз редактировалось YSL; 30.01.2009 в 06:47. |
30.01.2009, 06:46 | #8 |
Регистрация: 26.01.2009
Сообщений: 4
|
Вот файлы помогите кто может, очень нужно.
|
31.01.2009, 09:56 | #9 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Извлеките файлы из вложения в одну папку (например, на Рабочий стол), откройте файл договор.xls, и нажмите на желтую кнопочку.
Проверено в Office 2003. Если у Вас установлен Office 2007, придётся в проекте VBA поменять ссылку на библиотеку Word (c 11-й на 12-ю версию) |
02.02.2009, 00:48 | #10 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
А так?
Можно, не программируя, поставить на место всех заключённых в фигурные скобки «полей» реальные поля LINK, которые ссылаются на нужные Вам ячейки таблицы с работниками.
Я несколько часов «морочил» справку, но пока не рискую предъявить готовый договор. В приложенном примере поля работают (у меня) адекватно, и если (очень аккуратно!) их расставить по местам, то при открытии договора — сами будут заполняться, когды Вы (всего лишь) введёте номер строки работника из Вашей таблицы, поместив предварительно её (таблицу spisok.xls) в папку Мои документы*. И, разумеется, полный путь к файлу spisok.xls у Вас будет другим, без каталога Sasha! Краткий путь (одно имя файла) работает только в папке по умолчанию (Мои документы), и лучше указать полный: в кавычках и через двойные левые слэши (\\). Всё это есть в справке (по F1). В приложенном dogovor.doc Вы видите поле ASK и 7 полей LINK (по одному на колонку таблицы). Переключение к виду значений этих полей (и обратно): альт-F9. Обновляются эти линки сразу после нажатия OK при заполнении поля ASK. ВАЖНО: там, в полях LINK, есть ещё поля REF, содержащие закладку работник, равную (сразу после ответа на ASK) номеру строки в таблице spisok.xls, и вот эти REF автоматически заменяются на номер строки — и всё, пропадают. Поэтому заполненный договор надо сохранять под другим именем, а проще — хранить незаполненную копию отдельно, на будущее. __________________________ * или в какую Вам угодно, но быстрее — в ту, что по умолчанию
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 02.02.2009 в 01:07. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос данных из 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 |