|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.10.2009, 18:09 | #1 | |
Пользователь
Регистрация: 02.08.2008
Сообщений: 94
|
Вставка особой нумерации на нечетные страницы с разрывом страницы
Мне задали вопрос:
Цитата:
Пробовал определять разрыв по коду (12), но в цикле это приводит к ошибке (не существует такой объект). Если кто может помочь, подскажите пожалуйста. Во вложении и документ-образец с текстом и разрывами. Спасибо. Код: Код:
|
|
11.10.2009, 18:42 | #2 |
Пользователь
Регистрация: 19.09.2009
Сообщений: 69
|
Здесь сама концепция неправильная - в одном разделе не могут быть разные колонтитулы чётных и нечётных страниц: все колонтитулы чётных страниц одинаковы, все колонтитулы нечётных страниц - одинаковые. Исключение составляет только первая страница раздела, на которой может быть уникальный колонтитул.
|
11.10.2009, 19:55 | #3 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Я тоже задумался над этой проблемой. Ее можно было бы решить и без макросов, только полями, но все упирается в проблему определения количества страниц в разделе. А макросом, конечно, проще. Чуть позже решу, ближе к полуночи
Лучше день потерять — потом за пять минут долететь!©
|
12.10.2009, 17:00 | #4 |
Пользователь
Регистрация: 02.08.2008
Сообщений: 94
|
Александр, спасибо. Буду ждать, ибо вопрос и меня зацепил так, что вчера полдня убил на раздумья...
|
12.10.2009, 17:39 | #5 |
Пользователь
Регистрация: 19.09.2009
Сообщений: 69
|
Я даже не читая кода (плохо понимаю, что там), уже нашёл 3 ошибки:
Последний раз редактировалось БуреВестник; 12.10.2009 в 17:46. |
12.10.2009, 17:47 | #6 | |||
Пользователь
Регистрация: 02.08.2008
Сообщений: 94
|
Цитата:
Цитата:
Цитата:
|
|||
12.10.2009, 18:59 | #7 |
Пользователь
Регистрация: 19.09.2009
Сообщений: 69
|
Единственно, что можно сделать, но неизвестно как - это создать новое свойство DifferentLastPageHeaderFooter объекта PageSetup. А затем в диалоговое окно Параметры страницы добавить галочку: различать колонтитулы последней страницы.
|
13.10.2009, 03:42 | #8 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Задачка, однако
Да, задачка!
Конечно, добавить отдельное свойство документа это нереально. А вот поработать с колонтитулами и полями — очень даже можно. Тут у меня получилось кое-что. Рассуждал я так.
Поскольку речь идет о нумерации страниц, то колонтитулы скорее всего одинаковые во всех разделах. Следовательно, нужно оперировать полями. В своем первом посте этой темы я говорил, что все упирается в определение того, является ли данная страница последней в разделе. Или, перефразируя, равен ли номер данной страницы номеру страницы, которой заканчивается раздел? Как можно получить номер страницы, которой заканчивается раздел? Макросом. Как полученное значение использовать в поле? Сохранить его либо в закладку, либо в переменную документа, т.к. значение того и другого можно подставить в поле. Я решил использовать переменные документа. Вот этот макрос: Код:
Далее, это имя переменной нужно подставить в поле. Заглянув куда надо и потратив около часа времени, я пришел к такой вот формуле: Что в этой формуле? Оператор IF, проверяющий логическое выражение: если страница нечетная (остаток от деления на 2 не равен нулю) и номер страницы равен числу, хранящемуся в соответствующей переменной документа, то выводим номер страницы, а через черту номер следующей. Если же условие не выполняется, т.е. страница четная или не последняя в разделе, то просто показываем номер страницы. Остальные подробности можно узнать в приложении к этому посту
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 13.10.2009 в 06:43. Причина: Удалил вложение. Дал ссылку на исправленый вариант. |
13.10.2009, 06:03 | #9 |
Пользователь
Регистрация: 19.09.2009
Сообщений: 69
|
viter.alex
буду теперь знать, что в одном разделе можно сделать разные колонтитулы. Только для этого надо быть программистом или делать такое надо периодически. Хотя сейчас подумал, я не прав, можно и простому человеку делать такую нумерацию, даже не вникая в коды макроса и поля. Просто надо вставить код поля во все колонтитулы документа, а в VBA добавить код макроса. Вывести кнопку на панель инструментов и каждый сможет сделать нумерацию согласно ГОСТу от 79 года. Единственно надо не забыть применить макрос перед печатью, а то будет много брака. Кстати во вложенном файле всё нормально только в 1 разделе. Последний раз редактировалось БуреВестник; 13.10.2009 в 06:33. |
13.10.2009, 06:07 | #10 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Ошибка вышла.
Приведенный макрос считает не совсем то, что нам нужно. Нам же нужно получить номер страницы, которая последняя в разделе и к тому же содержит текст. А макрос это не учитывает. Ну да это легко исправить. Вместо строки
Код:
Код:
2 БуреВестник. А я уже исправился. Файл перезаливать не буду, думаю макрос исправите сами
Лучше день потерять — потом за пять минут долететь!©
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Статус страницы! | nikolai_P | PHP | 6 | 17.09.2009 10:03 |
Страницы | Grek55 | Софт | 2 | 06.05.2009 11:34 |
Динамическое изменение URL страницы в JavaScript без перезагрузки страницы | ilusha | JavaScript, Ajax | 7 | 25.02.2009 09:59 |
Как сделать разрыв страницы печати по условию и узнать номер страницы | Leanna | Microsoft Office Excel | 2 | 21.01.2008 06:59 |
разметка страницы. | Gambler | Microsoft Office Word | 0 | 29.10.2006 21:24 |