如何在 Ms Word 中放置带有最后编号页面的字段?

如何在 Ms Word 中放置带有最后编号页面的字段?

专著、学位论文和毕业论文等学术文本有时会使用不同的页码来区分正文前、正文和后文。

然后我需要创建目录卡区分了前置文本和正文的页数。为此,我想我可以放置一个字段,其中包含前置文本部分的最后一页和文档的最后一页的页码(这不是,{NUMPAGES}因为这会给我总页数)

为了更好地理解问题是什么,这是文档的结构:

  1. 正文前编号从第三页开始,使用罗马数字 (iii),到图例列表末尾 (xvi) 结束。此页的绝对编号也是 16。
  2. 正文部分之后的编号从 1 开始(阿拉伯数字),但在文档的绝对编号中,这是第 17 页。然后此编号以第 120 页结束,但在绝对编号中该页为 136。

然后我需要一个打印 XVI 和 120 的字段。我可以这样做:

{={NUMPAGES}-16}

但如果前置词增加了页面数量,那就行不通了

我也会很感激 VBA 中的解决方案。

答案1

通常在页脚中我记得语法是 x of xx,其中 xx 是最后一页。

当您将格式从罗马字母更改为阿拉伯字母时,您会在某处添加...RestartNumberingAtSection

这是一个需要检查的示例脚本

出错时继续下一步

Const wdPageBreak = 7 Const wdPageNumberStyleUppercaseRoman = 1

设置 objWord = CreateObject("Word.Application") objWord.Visible = True 设置 objDoc = objWord.Documents.Add()

设置 objSection = objDoc.Sections(1) 设置 objSelection = objWord.Selection

设置 objPageNumbers = objSection.Footers(1).PageNumbers objPageNumbers.NumberStyle = wdPageNumberStyleUppercaseRoman objPageNumbers.ShowFirstPageNumber = FALSE objPageNumbers.RestartNumberingAtSection = TRUE objPageNumbers.StartingNumber = 17 objPageNumbers.Add(1)

objSelection.TypeText “这是第 1 页。” objSelection.InsertBreak(wdPageBreak) objSelection.TypeText “这是第 2 页。” objSelection.InsertBreak(wdPageBreak) objSelection.TypeText “这是第 3 页。”

答案2

您可以使用字段和书签来实现这一点。

首先,在段落标记的右侧创建一个新书签,其中分节符位于借口部分的末尾(我将其命名为 bkPretextEnd)。

然后,在您希望显示调整后的页面计算的位置,不要硬编码 16,而是插入对书签页码的引用(并将字段格式更改为阿拉伯语,这样它就不会因为该部分中的 i 页码而“失败”)。

在此处输入图片描述

相关内容