Цитата Sandre:
a_axe, как подобрать, что бы автоматом считало? »
|
Sandre, в общем случае простого решения с полями не существует: либо у Вас сплошная нумерация, либо нумерация с единицы в каждом разделе.
Дабы не править числа в каждом разделе «ручками» каждый раз, когда меняется число страниц в разделах, можно использовать макрос такого вида:
Скрытый текст
Код:
![Выделить весь код](images/misc/selectcode.png)
Option Explicit
Sub ReNum()
Dim objSection As Section
Dim intPageCount As Integer
intPageCount = 0
For Each objSection In ThisDocument.Sections
With objSection
With .Headers.Item(wdHeaderFooterPrimary)
.LinkToPrevious = False
With .Range.Fields
.Add Range:=.Parent, Type:=wdFieldPage, PreserveFormatting:=False
.Parent.InsertBefore "=" & CStr(intPageCount) & "+"
.Add Range:=.Parent, Type:=wdFieldEmpty, PreserveFormatting:=False
End With
End With
intPageCount = intPageCount + .Range.Information(wdActiveEndAdjustedPageNumber)
With .Footers.Item(wdHeaderFooterPrimary)
.LinkToPrevious = False
With .PageNumbers
.RestartNumberingAtSection = True
.StartingNumber = 1
End With
.Range.Fields.Add Range:=.Range, Type:=wdFieldPage, PreserveFormatting:=False
End With
End With
Next
End Sub
Общий принцип следующий:
- колонтитулы разделов отсоединены от предыдущих;
- в нижнем колонтитуле ведётся нумерация по разделам, для чего для каждого из них нумерация страниц устанавливается в «Начинать с: 1»;
- в верхнем колонтитуле ведётся сплошная нумерация, для чего используется вышеуказанный коллегой a_axe способ с вычисляемым полем {= …}, содержимым которого являются два слагаемых: «общая сумма страниц предыдущих разделов» и «номер страницы в текущем разделе».
Выглядит сие примерно так:
Если Вас подобное устроит, посмотрю на его адаптацию непосредственно к Вашему документу.
Цитата Sandre:
Мне нужно скопировать в отдельный файл ворда один из разделов диплома с полностью неизменным форматированием и колонтитулами. К сожалению, не получается так. Что посоветуете? »
|
Создать копию исходного документа, в которой удалить всё лишнее.