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

Подстановка таблиц Excel в шаблоны Word

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

 

Что для этого нужно:

 

1. Включаем в настройках программы опцию вставки таблиц:

 

2. В исходной таблице Excel создаем столбец, где у нас будут храниться ссылки на вставляемые таблицы (столбец может называться как угодно),
выделяем ячейку в этом столбце (в строке с данными),
и нажимаем комбинацию клавиш Ctrl + Shift + T для вызова диалогового окна выбора таблицы:

диалоговое окно выбора вставляемой в шаблон Word таблицы

 

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

выбор диапазона ячеек таблицы, для вставки в шаблон Word

 

4. В выделенную ячейку исходной таблицы будет вставлена запись примерно такого вида:

<ExcelTable>/платежи/график/Excel

По этой записи надстройка FillDocuments понимает, что в шаблон Word, на место метки {Вставляемая таблица},
надо вставлять не текст ячейки, а таблицу, параметры вставки которой сохранены в этой ячейке.

 

Что обозначают параметры (разделенные слешем):

<ExcelTable> - это метка, которая говорит надстройке, что надо вставлять таблицу, а не текст ячейки

платежи - имя листа, с которого будет взята таблица

график - адрес или имя диапазона ячеек, который будет скопирован в шаблон Word

Excel - название режима вставки

 

Поэкспериментировав с выбором различных диапазонов и режимов, вы можете получить другие варианты метки, например:

<ExcelTable>34.xlsm/Спецификация/A2:F3/Word

Эта метка означает, что таблица будет скопирована из файла 34.xlsm, расположенного в папке Таблицы
(папка должна иметь именно такое название - Таблицы, и располагаться там же, где находится файл надстройки FillDocuments),
копироваться будет диапазон ячеек с A2 по F3, и при вставке будет выбран режим «использовать форматирование Word»


 

Что же делать, если количество строк во вставляемой таблице меняется, и задать фиксированный диапазон таблицы не получится?

Есть 2 варианта решения проблемы:

Способ 1:  вместо выбора диапазона, поставить галочку «все заполненные ячейки»

Обратите внимание - кнопка выбора диапазона становится недоступной, а в поле адреса высвечивается,
какой диапазон ячеек Excel считает заполненным на этом листе.

В диапазон могут попасть «пустые» строки или столбцы, - на самом деле, для Excel они не совсем пустые,
а, например, содержат какое-то форматирование или формулы.

Потому, чтобы этот способ корректно работал, необходимо выделить целиком лишние («пустые») строки и столбцы,
и нажать в меню Excel «Очистить - Очистить всё»

После этого (сохранения, закрытия и повтороного открытия файла со вставляемой таблицей),
в диапазон «заполненных ячеек» попадут только нужные ячейки.

 

Способ 2: сделать динамическую таблицу

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

Во вложении к статье - пример такой таблицы.

В первой строке таблицы прописаны формулы, и протянуты (с запасом) на 200 строк вниз
(т.е. во всех строках - одни и те же формулы)

Рамки ячеек в заполненных строках выполнены при помощи условного форматирования
(назначено правило для 5 столбцов - рисуем рамки, если ячейка в первом столбце непустая)

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

Имени график назначена формула =СМЕЩ(платежи!$A$1;0;0;платежи!$H$5+2;5)

 

 

 

ВложениеРазмерЗагрузкиПоследняя загрузка
DynamicTable.xls64 КБ12 года 42 недели назад

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Здравствуйте!
Помогите разобраться с подстановкой таблиц в Word. Ваши подсказки все проштудированы. Возможно уже кто то спрашивал, но я так и не нашол в комментариях эту тему.
В исходной таблице комбинацией клавиш устанавливаю ссылку на файл с таблицей с режимом вставки Picture. Но на выходе, в документе, так и остается метка {Вставляемая таблица}. Пробую с разными режимами вставки, но все бестолку(((

Здравствуйте, Денис

Убедитесь, что используете последнюю версию программы
(при использовании Office 2013 эта функция раньше не работала, изменения в программу внес несколько дней назад)
Если вы скачали программу больше 4 дней назад, - скачайте свежую версию, и замените имеющийся у вас файл надстройки при закрытом Excel)

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

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

Проблема как у Дениса - Word не вставляются таблицы Excel.
Office 2010.
Может, есть какие-либо ограничения, не описанные в справке?

Здравствуйте, Анатолий
Ограничений никаких нет, - бывает, что либо настроено что-то не так, либо Office глючит, либо внешние программы портят содержимое буфера обмена.
В большинстве случаев всё работает сразу, но иногда поколдовать немного приходится.

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

УРА!!! Разобрался! Для того, чтобы таблицы вставлялись, надо в Excel присвоить имя диапазону таблицы.
Разработчику - ОГРОМНОЕ СПАСИБО и РЕСПЕКТ!!!

Лист содержит формулы, которые используют имена для выведения чисел прописью(тыс={0;"тысячz":1;"тысячаz":2;"тысячиz":5;"тысячz"} и т.п.). На этапе выделения диапазона таблицы для вставки в договор, диапазон(B9:I12) автоматически переименовывается в "тыс". Почему?

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

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