Перезапуск номеров страниц - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь создать несколько документов в одном файле Word с VBA. Для каждого документа номер страницы должен начинаться с 1.

Я пытался использовать код из stackoverflow, а также записывать различные макросы и использовать этот код, но когда я запускаю свой макрос, он не работает. Действительно странная вещь в том, что у меня этот код находится в двух местах в моем макросе, и он работает на втором месте, но не на первом, и я не могу понять, почему.

-Код для создания первого документа

Selection.InsertBreak Type:=wdSectionBreakNextPage
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
    ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
    ActivePane.View.Type = wdOutlineView Then
    ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
With Selection.HeaderFooter.PageNumbers
    .NumberStyle = wdPageNumberStyleArabic
    .HeadingLevelForChapter = 0
    .IncludeChapterNumber = False
    .ChapterPageSeparator = wdSeparatorHyphen
    .RestartNumberingAtSection = True
    .StartingNumber = 1
End With
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

-Код для создания 2-го документа

В коде, который должен сбросить номер страницы до # 1 на странице 5 документа, курсор вместо этого перемещается вверх на первую страницу документа и сбрасывает номер страницы до 1 там, что не делает ничего, потому что это первая страница документа. Я не могу заставить курсор оставаться там, где он должен быть, на первой странице 2-го документа. Самое странное, что у меня есть этот код позже в макросе, и он работает там.

1 Ответ

1 голос
/ 16 апреля 2019

Вы вставили разрыв раздела, но у вас нет кода, чтобы установить для свойства .LinkToPrevious значение false. Следовательно, ваш новый раздел, вероятно, просто продолжает заголовок предыдущего раздела. Вот почему курсор переходит на первую страницу.

Чтобы решить вашу проблему, вы должны убедиться, что точка вставки находится в новом разделе, а затем вам нужно использовать .HeaderFooter.LinktoPrevious = false.

Возможно, вам нужно быть очень конкретным со свойством .LinktoPrevious и связать его с правильным верхним или нижним колонтитулом. Если вы еще не поняли, по три для каждого раздела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...