vba - 重新开始页码
问题描述
我正在尝试使用 VBA 在同一个 Word 文件中生成一些文档。对于每个文档,页码应从 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
- 生成第二个文档的代码
在应该将文档第 5 页上的页码重置为 #1 的代码中,光标改为向上移动到文档的第一页并将页码重置为 1,这不会做任何事情,因为是文档的第一页。在第二个文档的第一页上,我似乎无法让光标停留在应有的位置。最奇怪的是,我稍后在宏中有相同的代码,它在那里工作。
解决方案
您已插入分节符,但没有任何代码将 .LinkToPrevious 属性设置为 false。因此,您的新部分可能只是在前一部分标题上继续。这就是光标跳到第一页的原因。
要解决您的问题,您需要确保插入点位于新部分中,然后您需要使用 .HeaderFooter.LinktoPrevious=false。
您可能需要非常具体地使用 .LinktoPrevious 属性并将其链接到正确的页眉或页脚。如果您没有意识到每个部分都有三个。
推荐阅读
- python - 如何更改 Matplotlib 条形图 x 轴标签上显示的单位
- python - 在 Python 中创建带零的 UUID
- ios - UITableView 在使用 Codable 的 API 数据之前显示
- python - Python/AWS Neptune 得到“tornado.httpclient.HTTPError: HTTP 403: Forbidden”
- python - Python脚本版本
- amazon-web-services - AWS CloudWatch 状态更改规则和计划
- javascript - 如何编写脚本,以便当您单击按钮时,它会翻转到下一页或上一页?
- r - 如何在 R Shiny 应用程序中包含 Web 组件库?
- php - 如何将字段数据传递到链接中
- c++ - 有什么方法可以在新终端中打开线程或子进程的输出。C++