|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.07.2009, 15:46 | #1 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
Колонтитулы: как в предыдущем и поля
Добрый день!
Не подскажите, что в этом коде не так. Назначение этого кода: убрать во всех верхних колонтитулах Как в предыщем и превратить Поля (в колонтитулах есть поля) в обычный текст. Sub КолонтКакВПредУбир() 'Убираем во всем документе в верхнем колонтитуле Как в предыдущем и удаляем поля Dim x As Integer Dim oSec As Section Dim oHeadr As HeaderFooter 'Убираем Как в предыдущем For x = 2 To ActiveDocument.Sections.Count ActiveDocument.Sections(x).Headers( wdHeaderFooterPrimary).LinkToPrevio us = False Next 'Удаление полей в верхних колонтитулах For Each oSec In ActiveDocument.Sections For Each oHeadr In oSec.Headers oHeadr.Range.Fields.Unlink Next oHeadr Next oSec End Sub Последний раз редактировалось Busine2009; 29.07.2009 в 15:50. |
29.07.2009, 18:17 | #3 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
Проблема в том, что как это ни странно, но вторая часть этого кода - а именно
'Удаление полей в верхних колонтитулах For Each oSec In ActiveDocument.Sections For Each oHeadr In oSec.Headers oHeadr.Range.Fields.Unlink Next oHeadr Next oSec End Sub срабатывает раньше первой. Но я точно не устанавливал тонкостей. Т.е. происходит что: поле превращается в текст и только затем отжимается Как в предыдущем. В результате в разных раздел оказывается один и тот же колонтитул. Это еще не все. Я разделил эти 2 части на 2 макроса: сделал 2 кнопки, и что удивительно - их нельзя нажимать сразу одна за другой, потому что второй макрос снова опережает первый. Хотя если взглянуть на кнопку отмена действий (на стрелочку), то порядок действий правильный. Но если второй макрос запустить чуть позже, то всё срабатывает. В результате я в первом макросе добавил появляние Окна с сообщением: Закрой и посчитай до 10. |
29.07.2009, 19:54 | #4 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
нужно проверить разрывается ли связь с предыдущим. Дело в том, что ошибка не возникает, но и связь не разрывается.
Поставь Breakpoint на операторе Next из первого цикла и посмотри в Immediate что даст строка ?ActiveDocument.Sections(x).Headers ( wdHeaderFooterPrimary).LinkToPrevio us Если связь с предыдущим разделом разорвана, то даст, естественно False
Лучше день потерять — потом за пять минут долететь!©
|
29.07.2009, 20:44 | #5 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
Да я проверил с помощью Breakpoint and Immediate - связь разрывается: Как в предыдущем убирается.
Вот файл. Если хотите проверьте. В конце документа код макроса. Только что ещё кое-что обнаружил: после применения макроса во всех колонтитулах становится название того раздела, где стоял курсор, а не Заголовка 1. Последний раз редактировалось Busine2009; 29.07.2009 в 20:49. |
30.07.2009, 03:01 | #6 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Проверил. Все работает. Результат в приложении. Использовал макрос, приведенный в первом посте
Лучше день потерять — потом за пять минут долететь!©
|
30.07.2009, 09:01 | #7 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
|
06.08.2009, 22:24 | #8 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
У меня не работает макрос по превращению полей в колонтитулах в текст: в каких-то колонтитулах правильно работает, в каких-то нет. Буду использовать ручное преобразование полей в текст.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как убрать колонтитулы на нужных страницах? | Окоча Юра | Microsoft Office Word | 4 | 12.06.2009 21:38 |
Как подсчитать пустые поля? | mike_cheb | Microsoft Office Access | 6 | 18.03.2009 12:59 |
Разные колонтитулы на двух страницах одного листа | Dorvir | Microsoft Office Excel | 1 | 14.06.2008 12:25 |
Колонтитулы при альбомной ориентации в MS Word | OldNick85 | Microsoft Office Word | 1 | 14.11.2007 07:12 |