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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2014, 16:57   #31
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

Если о макросе то разбиение текста на фрагменты совсем неудобно, учитывая что почти половина значений превышает 255 символов.
=================
шаблон большой, но простейший
не раздумывая
--в екселе ввела бы порядковый номер и флажок(возможны перестановки и удаления
--программное создание НТМ-документа в стандартных тегах для выбранных строк
--открытие НТМ в ворде и запоминание как patent.doc
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 24.01.2014, 17:15   #32
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

shanemac51, возможно так проще, но я понятия не имею как это все сделать. Задача: автоматическое заполнение шаблона из базы. Макрос - все что пришло на ум.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 17:23   #33
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

макрос второе удачное решение после рук
Ну что у Вас получилось?
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 17:30   #34
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Код:
Sub Вставить_в_отчет()

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:="{$НОМПАТЕНТ01}", ReplaceWith:=Cells(2, 2), Replace:=2
WD.Range.Find.Execute FindText:="{$Наименовпатент01}", ReplaceWith:=Cells(2, 3), Replace:=2
WD.Range.Find.Execute FindText:="{$Названпатент01}", ReplaceWith:=Cells(2, 4), Replace:=2
WD.Range.Find.Execute FindText:="{$МПКпатент01}", ReplaceWith:=Cells(2, 5), Replace:=2
WD.Range.Find.Execute FindText:="{$датапублпатент01}", ReplaceWith:=Cells(2, 6), Replace:=2
WD.Range.Find.Execute FindText:="{$Статуспатент01}", ReplaceWith:=Cells(2, 7), Replace:=2
WD.Range.Find.Execute FindText:="{$Имязаявит01}", ReplaceWith:=Cells(2, 8), Replace:=2
WD.Range.Find.Execute FindText:="{$Номерзаявк01}", ReplaceWith:=Cells(2, 9), Replace:=2
WD.Range.Find.Execute FindText:="{$Датаподачзаяв01}", ReplaceWith:=Cells(2, 10), Replace:=2
WA.Visible = True
Set WA = Nothing

End Sub
Как то так. Осталось дописать макрос для остальных строк.

Руками все это переносить слишком долго и неудобно. Последний отчет (120 патентов) я заполнял день. Делалось это руками с помощью функции автозамены в worde. А перед этим пол дня вносил данные в таблицу.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 17:50   #35
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Код:
WD.Range.Find.Execute FindText:="{01}", ReplaceWith:=Cells(2, 2), Replace:=2
WD.Range.Find.Execute FindText:="{$Наименовпатент01}", ReplaceWith:=Cells(2, 3), Replace:=2
WD.Range.Find.Execute FindText:="{$Названпатент01}", ReplaceWith:=Cells(2, 4), Replace:=2
WD.Range.Find.Execute FindText:="{$МПКпатент01}", ReplaceWith:=Cells(2, 5), Replace:=2
WD.Range.Find.Execute FindText:="{$датапублпатент01}", ReplaceWith:=Cells(2, 6), Replace:=2
WD.Range.Find.Execute FindText:="{$Статуспатент01}", ReplaceWith:=Cells(2, 7), Replace:=2
WD.Range.Find.Execute FindText:="{$Имязаявит01}", ReplaceWith:=Cells(2, 8), Replace:=2
WD.Range.Find.Execute FindText:="{$Датаподачзаяв01}", ReplaceWith:=Cells(2, 10), Replace:=2
Это что?????
переименуйте заголовки столбцов, например столбец2="НОМПАТЕНТ"
напишите цикл
Код:
for r=2 to 10 ' (число строк)
for c=1 to 10 ' (число столбцов)
  WD.Range.Find.Execute FindText:="{$" & Cells(1, c) & Cells(r, 1) & "}", ReplaceWith:=Cells(r, c), Replace:=2
next
next
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 17:56   #36
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

В шаблоне названия [НОМПАТЕНТ01], [НОМПАТЕНТ02] и т.д.. Это как раз и нужно заменить.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 18:04   #37
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

С циклом что-то не понял что есть что...
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 18:24   #38
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Вот, посмотрите. распакуйте архив. и в макросе поменяйте путь к МОЕМУ шаблону
Вложения
Тип файла: rar Desktop.rar (124.2 Кб, 101 просмотров)
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 18:29   #39
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
Вот, посмотрите. распакуйте архив. и в макросе поменяйте путь к МОЕМУ шаблону
Да, отлично, вот только что если патентов не 100, а скажем 40? замена в этом случае пойдет уже не там где надо...


---
А, нет, все понял... да именно это и нужно! Благодарю!

Последний раз редактировалось Ksardex; 24.01.2014 в 18:39.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 18:36   #40
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

замена в этом случае пойдет уже не там где надо...
с какого это, я извиняюсь
maksim_serg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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