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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2014, 11:07   #1
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
Восклицание Перенос большого количества данных из Excel в Word

Добрый день, уважаемые форумчане!
Необходимо перенести ОГРОМНЫЙ объем данных (порядка 900 наименований, встречаются в документе от 3 до 11 раз) в шаблон документа.
В VBA не разбираюсь, пользуюсь найденными наработками, редактируя под себя.

Код:
Sub Fill()

Dim WA As Object, WD As Object

Set WA = CreateObject("Word.Application")
Set WD = WA.Documents.Open("C:\shablon.docx")

WD.Range.Find.Execute FindText:="text", ReplaceWith:=Cells(3, 2)
WA.Visible = True
Set WA = Nothing

End Sub
В этом случае копируется только первое значение (и как я понял есть ограничение на 255 символов, что мало)

Код:
Sub FillingWordFile()
Dim WD
Dim XL As Excel.Application
    Set WD = CreateObject("Word.Application")
    WD.Visible = True
    WD.Documents.Open Filename:=Application.ThisWorkbook.Path & "\shablon.docx"
    
    Range(3, 2).Copy
    WD.ActiveDocument.Bookmarks.Item("text").Range.Paste
    
End Sub
В этом копируется ячейка и вставляется в виде таблицы (тоже только в 1 месте).

Задача тривиальная, но как оказалось решить ее не так просто.
Буду благодарен за помощь.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 12:29   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

макрос должен быть такой:
Код:
for i = 1 to приблизительно 900
  данны_в_Excel.copy
  место_в_Word.paste
next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.01.2014, 12:44   #3
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
макрос должен быть такой:
Код:
for i = 1 to приблизительно 900
  данны_в_Excel.copy
  место_в_Word.paste
next
Видимо я не совсем четко описал задачу. В нужных местах шаблона Word стоят нечто вроде тегов типа "[переменная]". Общее количество таких тегов порядка 900 и встречаются они в документе по нескольку раз. Нужно их ВСЕ заменить данными из Excel из соответствующих ячеек, при этом без ограничения на количество символов и сохранением форматирования шаблона. Вариант с закладками не подходит, т.к. таким образом нужно создать более 3000 закладок. Простой copy-paste вставляет данные в виде таблицы.
Если возможно напишите полный пример замены 1 ячейки, дальше я справлюсь.

З.Ы. Еще раз подчеркну что данные нужно заменить во всем документе.
З.З.Ы. В VBA понимаю плохо, поэтому просьба изъясняться проще.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 13:51   #4
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

используйте "найти и заменить" с параметром "заменить все". Форматирование сохраняется, а ограничение в 255 символов можно обойти разбив содержимое ячейки на несколько значений с длиной текста в 255 символов
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 13:52   #5
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
используйте "найти и заменить" с параметром "заменить все". Форматирование сохраняется, а ограничение в 255 символов можно обойти разбив содержимое ячейки на несколько значений с длиной текста в 255 символов
Вы говорите о функции замены в Word? Раньше так и делали, но я повторюсь, заменить нужно более 900 значений! На это уходит слишком много времени.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 13:55   #6
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

неправда. у меня заменяет в 200 шаблонах с открытием каждого по очереди и сохранением по 46 замен в каждом примерно за 10 минут
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 13:56   #7
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

если у вас всего один шаблон, то это займет не более полуминуты думаю
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 13:59   #8
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
неправда. у меня заменяет в 200 шаблонах с открытием каждого по очереди и сохранением по 46 замен в каждом примерно за 10 минут
Так вы говорите о макросе или о встроенной в Word функции "найти и заменить"?
Если о макросе то разбиение текста на фрагменты совсем неудобно, учитывая что почти половина значений превышает 255 символов.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 14:01   #9
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

я раньше заменял по закладкам, однажды надо было создать новый шаблон. я все проклял пока вставил 50 закладок. переписал свой макрос
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 14:03   #10
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
я раньше заменял по закладкам, однажды надо было создать новый шаблон. я все проклял пока вставил 50 закладок. переписал свой макрос
Как уже писал выше в моем случае закладок будет более 3000.
Можете поделиться макросом?
Ksardex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический перенос данных с таблиц Excel в текст Word YSL Microsoft Office Word 52 27.06.2021 05:01
перенос данных из excel в word D_e_n_n Microsoft Office Excel 9 14.03.2011 08:06
Перенос выделенных данных из Excel в Word. Kolpachog Microsoft Office Excel 3 02.06.2010 16:47
Перенос данных из Excel в Word Volch Microsoft Office Excel 6 19.10.2008 20:36
Перенос данных из MS Word в MS Excel ? Nickd5 Помощь студентам 2 28.06.2008 20:40