重新启动页码

时间:2019-04-15 21:05:14

标签: vba ms-word

我正在尝试使用VBA在同一Word文件中生成一些文档。对于每个文档,页码应从1开始。

我尝试使用stackoverflow中的代码以及记录各种宏并使用该代码,但是当我运行宏时,它不起作用。真正奇怪的是,我的代码在宏的2个位置中都有,它在2位中有效,但不是第1位,我不知道为什么。

-生成第一个文档的代码

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

-生成第二个文档的代码

在应该将页码重设为文档第5页上的#1的代码中,光标改为向上移动到文档的第一页,然后将页码重设为1。任何东西,因为那是文档的第一页。在第二个文档的第一页上,我似乎无法使光标停留在应有的位置。最奇怪的是,我稍后在宏中也有相同的代码,并且在那里可以正常工作。

1 个答案:

答案 0 :(得分:1)

您已插入分节符,但没有任何代码将.LinkToPrevious属性设置为false。因此,您的新部分可能仅在上一部分标题上继续。这就是为什么光标跳到第一页的原因。

要解决您的问题,您需要确保插入点在新部分中,然后需要使用.HeaderFooter.LinktoPrevious = false。

您可能需要非常特定于.LinktoPrevious属性,并将其链接到正确的页眉或页脚。如果您没有意识到,每个部分都有三个。