1

Тема: Как подписать таблицу на каждой странице

Всем привет. У меня есть таблица, она расположена на трех страницах. На первой странице перед таблицей пишу "Таблица 1", на второй странице нужно написать перед таблицей "Продолжение табл. 1", а на третей странице написать "Окончание табл. 1". Как это можно сделать не разбивая одну таблицу на три таблицы?

2

Re: Как подписать таблицу на каждой странице

Это невозможно. Я умею делать только "Продолжение таблицы", используя надпись, которая закрывает первую строку таблицы. В этой строке написано "Продолжение...", и эта строка повторяется на каждой странице. А в надписи находится название таблицы. Сделать еще и "Окончание таблицы" не представляется возможным.

Мой шаблон/макросы для автоматической нумерации Word 2003, 2007, 2010 и т.д. (стили, названия, перекрестные ссылки, LISTNUM). Делюсь: http://vk.com/club_alex_bir

3

Re: Как подписать таблицу на каждой странице

Александр Б. пишет:

Это невозможно. Я умею делать только "Продолжение таблицы", используя надпись, которая закрывает первую строку таблицы. В этой строке написано "Продолжение...", и эта строка повторяется на каждой странице. А в надписи находится название таблицы. Сделать еще и "Окончание таблицы" не представляется возможным.

А как сделать "Продолжение таблицы"? "Окончание" я тогда сам отделю и сделаю отдельную таблицу

4

Re: Как подписать таблицу на каждой странице

Whitecolor пишет:

Как это можно сделать не разбивая одну таблицу на три таблицы?

Эта задача довольно сложна и зависит от определенных допущений.
В документе могут быть как регулярные таблицы, так и форматирующие.
Регулярные таблицы (РТ) содержат номер таблицы, на базе, напр., поля {SEQ} или группы полей; заголовки столбцов - «шапку», которая может быть довольно сложной структуры.  Как правило, регулярные таблицы должны иметь для некоторых заголовочных строк признак повторения при переходе таблицы на следующий лист, с тем, чтобы на каждом листе была видна «шапка» таблицы.
Форматирующие таблицы (ФТ) предназначены для более наглядного оформления материала и зачастую могут иметь невидимые границы таблицы и не иметь «шапки».
Понятно, что следует ввести допущение: обрабатываться должны только регулярные таблицы.
Word не предоставляет возможности напрямую решить поставленную задачу, но ее можно было бы решить следующим образом:
Если текст многостраничной таблицы меняться не будет, то лучше ее вручную разбить на несколько таблиц, сформировав необходимые заголовки продолжения или окончания.
Если текст таблицы будет меняться (будут добавляться и удаляться строки), то стоит следовать некоей процедуре, которую можно было бы автоматизировать через VBA. Это операции разбивки и воссоединения РТ. Вот как я представляю себе основные операции:
1. Операция разбивки.
Во всем документе обработать все РТ на «разбивку». Для каждой РТ надо создать копию ее «шапки» и зафиксировать ее номер, потом найти строку, являющуюся последней на текущей странице и выполнить операцию разбивки таблицы (Ctrl+Shift+Enter). В образовавшийся пустой абзац вписать фразу типа «Продолжение таблицы NNN» (или «Окончание таблицы NNN»), где NNN - номер РТ. Абзац со сформированным подзаголовком сцепить со следующим куском разбитой таблицы. Абзац подзаголовка (вместе с символом конца абзаца) выделить закладкой с определенным префиксом, напр., «Table_sep_XXXXXX», где XXX - сквозной номер (это нужно для операций «воссоединения» таблиц РТ перед новой операцией разбивки). Может оказаться так, что найденная перед разбивкой РТ последняя на странице строка является строкой шапки или первой строкой после шапки - тогда всю РТ надо перенести на следующую страницу (напр., вставив перед заголовком таблицы разрыв страницы).
Копию «шапки» лучше создавать так: наложить на шапку закладку с определенным именем, а затем в начало новой порции таблицы на новом листе вставить кросс-ссылку на текст этой закладки.  Текст самой кросс-ссылки также выполнить закладкой с определенным префиксом, напр., «Table_sep_headref_XXXXXX». Результат операции - отсоединение от РТ первой порции РТ в самостоятельную РТ и преобразование оставшейся порции РТ также в отдельную РТ. Таким образом надо обработать все РТ. При обработке учитывать номер части разбиваемой РТ: если она последняя, то формировать подзаголовок «Окончание таблицы NNN».
Сложность этого этапа - определение строк «шапки» и создание копии «шапки».
2. Операция воссоединения РТ. В каждом документе необходимо обновлять поля. Кроме того, каждая часть любой РТ может «расти» и «уменьшаться» с разной скоростью. Все это приводит к необходимости обслуживания разбитых РТ. Под «воссоединением» РТ я понимаю преобразование всех РТ-частей в общую  РТ для выполнения новой разбивки. Чтобы объединить РТ-части, достаточно удалить в документе диапазоны , помеченные закладками «Table_sep_XXXXXX», а также закладками, покрывающими кросс-ссылки на «шапки» разбитых РТ.
Общая порядок действий с применением описанной методики:
А. Автор документа вносит изменения в необходимые РТ.
Б. Автор обновляет все поля в документе.
В. Автор выполняет операции сначала воссоединения, затем разбивки РТ (это должен быть отдельный VBA-макрос, реализующий описанную выше методику: описанное выше можно считать маленьким ТЗ smile).
Г. Автор снова обновляет все поля в документе.

5

Re: Как подписать таблицу на каждой странице

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

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

но достаточно часто этого достаточно ---многое зависит от требований

6

Re: Как подписать таблицу на каждой странице

shanemac51 пишет:

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

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

но достаточно часто этого достаточно ---многое зависит от требований

В общем, я так уже и сделал