Когда в документе нет специального колонтитула первой страницы, то макрос выполняется нормально, и на каждой странице выходит правильный колонтитул.
Когда же в документе вставлена нумерация страниц и она отображается со второй станице, начинается путаница.
Подскажите как чтобы и при специальном колонтитуле первой страницы, текст в колонтитулах был верным
Спасибо!
Visual Basic | ||
|
Добавлено через 19 часов 1 минуту
т.е. мне надо чтобы этот макрос выполнялся с первой страницы
и нумерация страниц, но номера на первой странице не было
I have only basic VBA experince and my prior Macro experence was primarily with WORD 2003. Recording Macros used to take GoToFooter (or Edit Footer) Menu Commands and allow subsequent editing. In WORD 2010, this (and many other) commands do not «record» to the Macro (yet when in Record mode, I do get into Edit Footer function).
A research of various VBS options shows several ways to create Footers and to make global Footer setting changes within Macro. However If I simply want to Revise the Company name within the Footer (for example), I can find no way to do this within a Macro subroutine.
This subroutine is one that I would call from the Main Macro that is stepping through each file in a Folder (& subfolders). I have the main Macro functioning.
Does WORD 2010 Macro-VBA preclude simple Edit-Footer function?
Thanks in advance
So, thanks to Issun, here is my solution:
`
Sub Sub_FTR_0()
'
ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
For i = 1 To ActiveDocument.Sections.Count
'REM: INSERT Code from RECORD MACRO recorded when editing one Footer correctly
Selection. [[xxx]], etc.
If i = ActiveDocument.Sections.Count Then GoTo Line1
ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter
Line1:
Next
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
`
Алена задала вопрос:
Как вставить колонтитулы на нечетных страницах документа?
Есть две возможности вставить колонтитул на нечетные страницы: в первый раздел документа (если он, например, единственный), или во все разделы документа.
Вот примеры макросов, позволяющие реализовать эти два способа.
Sub insertHFoddPages() 'Вставка нижнего колонтитула на нечетные страницы 'в первом разделе документа Dim str As String str = "Текст нижнего колонтитула на нечетной странице" ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = True ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.text = str End Sub
Если нужно вставить текст во все нижние колонтитулы во всех разделах документа, то используйте второй макрос:
Sub insertHFoddPages2() 'Вставка нижнего колонтитула 'на нечетных страницах во всех разделах документа Dim str As String Dim Sec As Section str = "Текст нижнего колонтитула на нечетной странице" ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = True For Each Sec In ActiveDocument.Sections Sec.Footers(wdHeaderFooterPrimary).Range.Text = str Next Sec End Sub
сделать в Ворде макросом колонтитул нижний
Автор Ципихович Эндрю, 04 февраля 2017, 13:31
Ципихович Эндрю
- гость
- Записан
Здравствуйте, как сделать в Ворде макросом, чтобы в конце страницы последней строкой было, например
___________ А.А. Петров?
Эта вещь вроде колонтитулы нижние называется, но не сталкивался.
Администратор
- Administrator
- Сообщения: 2,254
- Записан
Вставка текста в первый раздел, в нижний основной колонтитул:
Sub Макрос()
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text = «___________ А.А. Петров»
End Sub
Примечания
- Колонтитулы есть в каждом разделе файла. Поэтому, если у вас несколько разделов в файле, то может потребоваться вставлять колонтитулы не в один раздел, а в несколько.
- Колонтитулы есть трёх видов:
1) основной — wdHeaderFooterPrimary
2) колонтитул первой страницы раздела (именно раздела, а не всего файла) — wdHeaderFooterFirstPage
3) колонтитул чётной страницы — wdHeaderFooterEvenPages
Поэтому это нужно помнить. Например, если вы вставили колонтитул, а его не видно, значит в файле нет какого-то колонтитула.
- Форум по VBA, Excel и Word
-
►
Word -
►
Макросы в Word -
►
сделать в Ворде макросом колонтитул нижний
Колонтитулы — программное изменение
- zoman
- Начинающий
- Сообщения: 4
- Зарегистрирован: 10.06.2005 (Пт) 9:19
Колонтитулы — программное изменение
Как можно изменить имеющиеся верхние колонтитулы (произвольный текст + № страницы) для Word с помощью VBA?
- uhm
- Продвинутый гуру
-
- Сообщения: 1597
- Зарегистрирован: 02.12.2004 (Чт) 15:21
uhm » 10.06.2005 (Пт) 9:38
Запиши макрос, сделай в нем мышкой все действия, потом посмотри его текст.
- zoman
- Начинающий
- Сообщения: 4
- Зарегистрирован: 10.06.2005 (Пт) 9:19
zoman » 10.06.2005 (Пт) 9:45
Запиши макрос, сделай в нем мышкой все действия, потом посмотри его текст.
А ты сам так пробовал?
После выполнения он делает там где установлен курсор
- uhm
- Продвинутый гуру
-
- Сообщения: 1597
- Зарегистрирован: 02.12.2004 (Чт) 15:21
uhm » 10.06.2005 (Пт) 9:50
Мда, забыл, что в ворде макросы хреновастенько записываются… Я по ворду не специалист, если будет время, посмотрю.
- RayShade
- Scarmarked
-
- Сообщения: 5511
- Зарегистрирован: 02.12.2002 (Пн) 17:11
- Откуда: Russia, Saint-Petersburg
-
- Сайт
- ICQ
RayShade » 10.06.2005 (Пт) 10:05
Нечего на Ворд пенять, коли голова не включается. Понятное дело, что он запишет для Selection макрос. Так его надо модифицировать самому потом уже.
- uhm
- Продвинутый гуру
-
- Сообщения: 1597
- Зарегистрирован: 02.12.2004 (Чт) 15:21
uhm » 10.06.2005 (Пт) 11:19
Для Selection — это еще хорошо. Ты попробуй с колонтитулами поработать. Там правда уродский код получится, который еще и не работает. Из него, конечно, можно вывести то, что нужно, но далеко не сразу.
- zoman
- Начинающий
- Сообщения: 4
- Зарегистрирован: 10.06.2005 (Пт) 9:19
zoman » 10.06.2005 (Пт) 11:44
Вот так добавляем колонтитул:
Word.Document.Sections(1).Headers(1).Range.Text = «TEST»
Вот так добавляем к существующему колонтитулу:
Word.Document.Sections.Item(1).Headers.Item(1).Range.InsertBefore «TEST»
А мне надо еще варианты, типа как создать полный колонтитул с номером страницы, датой и временем…
- zoman
- Начинающий
- Сообщения: 4
- Зарегистрирован: 10.06.2005 (Пт) 9:19
Решил…
zoman » 14.06.2005 (Вт) 9:54
Вообщем, чтобы не изобретать велосипед, сдлелал так:
В колонтитулах то, что надо менять — сделал полями.
Нюанс:
Word.Document.Fields.Update — обновляет поля для документа.
Word.Document.Sections(1).Headers(1).Range.Fields.Update — ОБНОВЛЯЕТ ПОЛЯ ДЛЯ КОЛОНТИТУЛОВ!!!
Вернуться в VBA
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2