mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!
Статья является инструкцией по надстройке FillDocuments

Подстановка в шаблон Word данных из нескольких строк таблицы Excel

В данной статье описывается, как реализовать заполнение файлов Word при помощи программы заполнения документов,
если исходные данные для постановки в шаблон расположены в нескольких строках таблицы Excel.

Смотрите также инструкцию по настройке программы (режим «Multirow»),
для подстановки нескольких строк из исходной таблицы Excel в шаблоны Excel

(в шаблонах Excel, в отличие от Word, можно использовать формулы и дополнительные функции
типа склонения, суммы прописью, и т.д. и т.п.)

Для начала, в настройках программы включаем соответствующую опцию:


Теперь подготавливаем шаблон документа:


Необходимо выделить в шаблоне строку текста или строку таблицы, которая будет размножаться,
и присвоить выделенному диапазону закладку, начинающуюся с текста Multirow

ВАЖНО! Перед назначением закладки, надо выделить абзац текста или строку таблицы ЦЕЛИКОМ.

Для этого, подведите курсор к строке или абзацу СЛЕВА, — при этом, курсор изменит направление, - стрелка будет направлена в правый верхный угол.
После этого, просто щелкните мышом, — Word выделит абзац / строку целиком.

Таких размножающихся строк таблицы (с закладками Multirow) может быть несколько. Закладки будут называться Multirow1, Multirow2, Multirow3 и т.д.


Обратите внимание на символ # в кодах полей для размножаемых строк.

Если написать просто {КодПоля} в размножаемой строке, - в каждой из сформированных строк окажется один и тот же текст (из первой выделенной строки исходной таблицы).

А если написать {КодПоля#} - будет подставляться текст из разных строк (см. скриншот выше, и пример результата ниже)


Собственно, на этом настройка завершена. Сохраняем изменения в шаблоне, закрываем его, — и можно пробовать.


Выделяем нужные строки в исходной таблице Excel, и запускаем заполнение документов

Результат: (для каждой из выделенных строк Excel, в документ Word добавлена запись)



PS:

Шаблон, в процессе обработки программой (перед подстановкой данных), будет преобразован в такой вид:

(строка с меткой Multirow размножится нужное количество раз)

Комментарии

Высылайте мне на почту исходный файл Excel, и пример желаемого результата (после заполнения)
Не видя файлов, ничего определённого сказать не могу.

Возможно ли с помощью multirow заполнять шаблон ссылаясь на несколько листов?

Ясно. А как из word обратиться к данным на другом листе excel? или надстройка работает только с одним листом?

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

Есть одна таблица excel в ней постоянно меняется количество строк. Мне нужно в шаблон в wordе вставить таким образом, что бы допустим в таблице excel есть 15 строк. Из них 5 строк до определенной помещались в одну таблицу, а остальные 10 строк в другую. И изначальное количество строк тоже меняется. Можно ли так сделать? Или если нет, то как разбить таблицу на разных листах и при этом из wordа обратиться в шаблоне к другому листу

Надо добавить мой сайт ExcelVBA.ru и расширение .XLA в список исключений, - тогда съедать не будет.
Потом заново скачать и запустить.

перед запуском скачанного файла надстройки, необходимо выполнить следующее:

> найти скачанный файл надстройки в папке (обычно это папка «Загрузки»)
> щелкнуть правой кнопкой мыши на файле - Свойства - Разблокировать - ОК
> и только после этого запускать

Аваст "сожрал" надстройку. Говорит, VBA:Downloader-FGO (Trj)
Включил в безопасные, сожрал все равно. Как установить снова, и восстановить лицензию?

Вы можете использовать несколько меток multirow, в разных таблицах шаблона
(не уверен, что вам это нужно, - я не понял, что из чего вы хотите получить)

Multirow это то, что мне надо. Но скажите можно ли формировать несколько таблиц word разделив одну таблицу excel. Данные в таблице excel меняются, так что точное количество строк неизвестно.

Напишите мне в скайп, попробую помочь

я уже весь измучился не получается не как сделать все равно подставляет одно и тоже

Да вроде должно работать, в последней версии программы

Игорь, а Multirow с "Искать в шаблонах коды полей и заменять только найденные" не дружать?

В шаблонах Word - да, заполняет. В Excel - не помню, вроде не делал такого.

Доброго времени суток, подскажите пожалуйста, Ваша надстройка умеет заполнять Надпись (которую можно вставить в любом месте) в Экселе?

Здравствуйте, Михаил.
Программа заполняет только шаблоны Excel, Word и TXT.
Программа НЕ заполняет файлы других типов (ПДФ и подобное), - так что такого функционала нет, и не предвидится.

Здравствуйте! Будет ли реализована функция авто-заполнения текстовых полей PDF файла?

чтобы я смог помочь, от вас надо: http://ExcelVBA.ru/help

Так {sample#} пробовал тоже. Строка просто не размножается. Ставится первое значение из таблицы со значениями и все.

Если сами не разберетесь, - звоните в скайп, помогу.

Выделяю строку полностью стрелкой {sample#1}

Такого не должно быть в строке шаблона
там должно быть {sample#}
Тогда на место {sample#} (после размножения строки) подставятся значения из исходных выделенных строк.

Как я только не пробовал завести Multirow (настройки включил, столбец с данными в таблице выделил). Выделяю строку полностью стрелкой {sample#1}. Делаю закладку Multirow1. Пытался через добавления таблицы с 2 ячейками тоже не катит. Подскажите, пожалуйста, как заставить работать эту функцию на Office 2016 x64?

Нет, для шаблонов Word у меня нет такого функционала.
Используйте шаблон в формате Excel, - там всё получится:
http://excelvba.ru/programmes/FillDocuments/MultiRow/Group

Доброго времени! Скажите, а если надо вставить сумму (сама чтоб считала)в Ворд из выбранных строк Эксель. Такое возможно с этой функцией? Благодарю.

В инструкции описаны основные используемые коды полей:
http://excelvba.ru/programmes/FillDocuments/FieldCodes
Всё это, разумеется, относится только к моей надстройке.

Благодарю. Настолько сильно не знаком с программой, а вот исчерпывающий список кодов где то посмотреть можно?, или они относятся только к вашей надстройке.

Для нумерации строк, в строке под меткой Multirow можно использовать код поля {%index%}

а при добавлении строк как реализовать сплошную нумерацию? Спасибо.

В режиме Multirow вставляются как размножаемые строки, так и обычные данные (из фиксированных ячеек, или первой выделенной строки).
Размножаемые строки (когда данные берутся сразу из нескольких строк исходной таблицы) - только на отдельных строках, а всё остальное - можно и внутрь текста вставить.

Доброго времени суток. Спасибо большое за программу.
Воспользовался программой Multirow и столкнулся с проблемой, что при вставке данных из таблицы нарушается строка и вставленные данные с новой строки. Возможно как-то сделать чтобы вставлялись не новая строка, а продолжался текст?

Увы, такой вариант тоже не сработает.
В программе такое не предусмотрено, - ранее никто из пользователей не просил скрестить ежа с ужом подставлять в письма содержимое заполненного документа Word в режиме Multirow.

Могу доработать программу, - но только за дополнительную плату (работы много очень)

Спасибо за быстрый ответ!
А если сначала сформировать файлы, положить их в какую-нибудь папку, и при повторном запуске программы скопировать содержимое файлов в письма (аналогично вставки по метке PasteWordDoc)?

Здравствуйте, Светлана
Такой возможности нет, - пока только прикрепление заполненных файлов.

Но вы можете получить письмо нужного вида, настроив шаблон текста письма в формате HTML, — чтобы получить на выходе форматированный текст с подставленными значениями
(только на текст письма не распространяется функция Multirow)

Спасибо огромное за функцию MultiRow! Все получилось с первого раза! Но возник вопрос, возможен ли перенос содержимого созданного документа Word в тело письма? Спасибо!

Так в Excel выделяете блок из 3 строк, и назначаете ему метку (имя) Multirow
В Excel всё должно корректно копироваться, независимо от количества строк в именованном диапазоне

Другими словами, задача та же, что и для Ворда. А в Экселе как это же осуществить? Какой хитростью воспользоваться?
Заранее спасибо!

Михаил, из описания проблема непонятна.
Если сами не разберетесь, - звоните в скайп, попробую помочь
От вас для этого надо: http://ExcelVBA.ru/help

Отлично! Действительно сработало, спасибо!
А в Экселе возможно копирование нескольких строчек? Если указать каждую строчку MultiRow1, MultiRow2, MultiRow3, то в результате он перечислит значения из исходной таблицы, но в виде:
Иванов
Петров
Сидоров
Иван
Петр
Сидор
Иванович
Петрович
Сидорович
А должно быть:
Иванов
Иван
Иванович
Петров
Петр
Петрович и т.д.

Здравствуйте, Михаил
Закладки с именами типа MultiRow1 и MultiRow2 программа должна понимать (обрабатываются любые закладки, название которых начинается со слова MultiRow)
Насчёт нескольких строк (абзацев) под одной закладкой - не проверял

Там много нюансов с размножением строк, - иногда то, что работает в пустом файле Word, не работает в реальном шаблоне.
Я не спец по Word, - потому мне сложно сделать функцию размножения строк, стабильно работающую в любых вариантах.

Могу предложить неочевидный, но точно работающий способ:
1) вставляете в шаблон ТАБЛИЦУ из 2 строк и одного столбца
2) первую строку делаете минимальной высоты, установкой размера шрифта = 1 пункт
3) во вторую ячейку (строку) вставляете несколько абзацев размножаемого текста
4) второй строке таблицы назначаете метку Multirow
5) делаете рамки таблицы невидимыми

так точно будет работать, и выглядеть результат будет также, как и без таблицы.
PS: первая (пустая) строка таблицы нужна, т.к. без неё размножение строк не всегда корректно выполняется.

Добрый день!
Программа действительно мощная, но возник вопрос:
Выделаю курсором (подвожу к строке или абзацу СЛЕВА) несколько строчек (абзацы разные, т.к. разделены Энтером), создаю закладку MultiRow. Запускаю формирование - пустота. Пробовал каждую строку (абзац в моём случае) загонять в отдельную закладку MultiRow1 и MultiRow2 - то же самое, не понимает программа 1 и 2 в названии закладок.
Проверяю работоспособность на одной строке - всё в порядке.
Что я не учёл?
Спасибо!

Наконец то понял как ! ))) Надо подвести мыша слева от строки (за границей таблицы,стрелка БЕЛОГО ЦВЕТА будет направлена в правый верхний угол) и ОДИН РАЗ ЩЕЛКНУТЬ (выделится строка целиком)

В статье написано:

ВАЖНО! Перед назначением закладки, надо выделить абзац текста или строку таблицы ЦЕЛИКОМ.

Для этого, подведите курсор к строке или абзацу СЛЕВА, — при этом, курсор изменит направление, - стрелка будет направлена в правый верхний угол.

Т.е. не надо выделять ячейки строки!
Дало подвести мыша слева от строки, и ОДИН РАЗ ЩЕЛКНУТЬ (выделится строка целиком)
После этого назначить закладку.
И всё будет работать.

Как-то вчера заработало после долгих мучений, но принципа выделения строк я так и не понял, таблица из одной строки создаваться не хочет, как минимум 2 строки приходится делать

Видимо, неправильно назначена метка multirow для строки таблицы (перед назначением метки, не вся строка была выделена, а только ячейки этой строки)
Потому размножение строки не срабатывает

Если сами не разберетесь, - могу помочь: http://ExcelVBA.ru/help

С таблицами всё таки не получилось разобраться, таблицу или её строку c закладкой из шаблона стирает, на выходном документе пустота. Простые строки с закладками multirow работают

Действительно, всё отлично работает.
Я немного не поняла объяснений, показалось, что MultiRow1, MultiRow2 и т.п. - это служебные закладки, которые создает не пользователь, а размножает сама программа.
Замечательно. Спасибо за ответ.

А кто вам сказал, что закладка может быть только одна?
Создайте закладки MultiRow2, MultiRow3 и т.д., и проверьте, — всё будет работать.
(в статье на втором скриншоте показано и написано про 2 закладки, - для увеличения скриншота, щелкните по нему мышом)

PS: На всякий случай, дополнил статью текстовым описанием, чтобы было понятнее.

Здравствуйте. Программа очень удобная.
Правда, сначала MultiRow не работала с таблицей - просто не обрабатывала загнанные в ячейки {поля#}. Но я попробовала создавать таблицы разными способами, и какой-то из вариантов сработал, всё получилось.
Но у меня есть проблема. В моих документах мне очень нужно иметь три разных блока с подобным многострочным заполнением. А присваиваемая закладка только одна. Нельзя ли ввести ещё пару дополнительных? Что-нибудь вроде "Второй_MultiRow" и "Третий_MultiRow".
Это было бы спасением.
Но если нельзя - спасибо за программу в любом случае.

Здравствуйте
В моей программе нет такой возможности, - только создание отдельных документов.
Воспользуйтесь штатной функцией Word «слияние», — она как раз для такого предназначена.

Добрый день,

мне необходимо чтобы шаблон в ворде, состоящий из 1 страницы, копировал сам себя на каждой следующей странице внутри одного файла, и в каждой новой странице в шаблон были подставлены новые данные из строк экселя. Подскажите порядок действия.

Если по инструкциям разобраться не можете, - могу помочь с настройкой.
От вас для этого надо: http://ExcelVBA.ru/help

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
  ____    _  _     _                 __     __      
| _ \ | || | | |__ __ __ \ \ / / ___
| |_) | | || |_ | '_ \ \ \ /\ / / \ \ / / / __|
| _ < |__ _| | |_) | \ V V / \ V / \__ \
|_| \_\ |_| |_.__/ \_/\_/ \_/ |___/
Введите код, изображенный в стиле ASCII-арт.