我正在尝试使用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。任何东西,因为那是文档的第一页。在第二个文档的第一页上,我似乎无法使光标停留在应有的位置。最奇怪的是,我稍后在宏中也有相同的代码,并且在那里可以正常工作。
答案 0 :(得分:1)
您已插入分节符,但没有任何代码将.LinkToPrevious属性设置为false。因此,您的新部分可能仅在上一部分标题上继续。这就是为什么光标跳到第一页的原因。
要解决您的问题,您需要确保插入点在新部分中,然后需要使用.HeaderFooter.LinktoPrevious = false。
您可能需要非常特定于.LinktoPrevious属性,并将其链接到正确的页眉或页脚。如果您没有意识到,每个部分都有三个。