Программа заполнения документов позволяет вставлять в шаблоны Word не только значения из ячеек выделенной строки, но и целые таблицы, которые могут храниться на другом листе (или в другом файле Excel).
Что для этого нужно:
1. Включаем в настройках программы опцию вставки таблиц:
2. В исходной таблице Excel создаем столбец, где у нас будут храниться ссылки на вставляемые таблицы (столбец может называться как угодно),
выделяем ячейку в этом столбце (в строке с данными),
и нажимаем комбинацию клавиш Ctrl + Shift + T для вызова диалогового окна выбора таблицы:
3. Из выпадающего списка выбираем имя листа, содержащего таблицу
(предварительно, можно выбрать другой файл, - если вставляемая таблица расположена во внешнем файле),
выбираем диапазон ячеек, и один из 4 доступных режимов вставки таблицы Excel в 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)