跨多个文档的自动页码(Microsoft Word)
Abulkalam有多个文档,他希望从一个文档到另一个文档具有连续的页码。如果一个文档具有添加或删除的页面,则他必须手动更改以下文档中的页面编号。他知道他可以使用主文档和子文档,但是蠕虫病毒就是他不想打开的那种。
阿布卡拉姆(Abulkalam)想知道是否有一种方法可以避免始终需要手动更改页码。
在Word中没有自动执行此操作的方法。您可以尝试通过使用文档中的字段来解决问题,但这有点复杂。作为示例,假设您有三个文档,每个文档代表一本更大的书中的章节。 Chap1.doc有15页,Chap2.doc有11页,Chap3.doc有17页。首先打开Chap1.doc,然后执行以下一般步骤:
。在文档倒数第二页(在本例中为第14页)的某个位置插入连续的分节符。
。在文档第一部分的页脚中,按Ctrl + F9。
这将插入一对字段括号,您应该在其中键入单词PAGE。
。按F9折叠刚刚创建的字段。这表示当前页面的页码。
。在“页眉和页脚”工具栏中(由于您正在使用页脚,因此应该可见),单击“显示下一个”按钮。这会将您移至文档最后一节中的页脚,也就是您在步骤1中插入的分节符之后。 。单击“与上一个相同”工具,以便将其选中。这会将上一节中的页脚与先前创建的页脚“取消链接”。
。删除页脚中的PAGE字段。 (不用担心;由于您取消了本节的页脚与上一节的页脚的链接,因此该字段仍存在于前几页中。) 。按Ctrl + F9插入一对字段括号,您应在其中输入单词NUMPAGES。
。按F9折叠刚刚创建的字段。
。选择刚刚创建的字段,然后按Shift + Ctrl + F5。 Word将显示“书签”对话框。 (请参见图1。)
。键入一个简单的书签名称,例如bk。当您单击添加时,将创建书签。
。关闭“书签”对话框。
。关闭页眉和页脚工具栏,然后保存您的文档。
现在,您需要遵循Chap2.doc文档中的相同常规步骤,不同之处在于您使用的字段需要稍微复杂一些。
假设文档文件存储在C:\ MyDocs \ Example的目录中,则在步骤2中使用以下复合字段:
这是使用INCLUDETEXT字段从Chap1.doc抓取名为bk的书签中的任何内容(这是该文档中的页面总数),然后将当前页面号添加到该值中。因此,从Chap1.doc中的页数开始继续编号。
{ ={ INCLUDETEXT "\\MyDocs\\Example\\Chap1.doc" bk \! } + { PAGE } }
类似地,您在步骤7中应该使用的字段也很复杂:
就是您的Chap2.doc文件了;页面编号应该可以正常工作。在Chap3.doc文件中,再次使用与Chap2.doc文件相同的复杂字段,执行相同的步骤。唯一的区别是,您可以通过以下方式在字段中引用Chap2.doc:
{ ={ INCLUDETEXT "\\MyDocs\\Example\\Chap1.doc" bk \! } + { NUMPAGES } }
请注意,每当您从任何文档中添加或删除页面时,其中的页码都会在字段更新时自动更新。 (当您手动更新字段或选择打印或使用打印预览时,字段会更新。)
{ ={ INCLUDETEXT "\\MyDocs\\Example\\Chap2.doc" bk \! } + { PAGE } } { ={ INCLUDETEXT "\\MyDocs\\Example\\Chap2.doc" bk \! } + { NUMPAGES } }
当然,使用这种方法时需要记住一些“陷阱”。首先,如果您从任何文件中删除连续的分节符(第1步),您实际上会搞砸了。其次,如果将文档移到其他文件夹(或将文档发送给使用其他文件夹的其他人),则这些字段将根本无法使用。
第三,如果您在文档中使用多个部分,那么当您尝试补偿这些部分时,此方法可能会变得复杂得多。
另一种方法是使用宏来处理页码。宏可以逐步浏览所有文件,并将起始页码设置为适合这些文件的任何内容。以下是此类宏的示例:
要使用该宏,只需指定存储文档的目录,然后将文档文件名放入fileNames数组中。宏将第一个文档设置为从第1页开始,而每个后续文档的设置都比上一个文档中的最高页码多一个。如果您更改任何文档中的页数,则需要重新运行宏。
Sub PageNumberReset() Dim pgNo As Long Dim n As Long Dim pathName As String Dim fileNames Dim thisFile As String Dim aRange As Range ' Specify the path to the document files pathName = "C:\MyDocs\Example\" ' Create an array holding the document file names, in sequence fileNames = Array("Chap1.doc", "Chap2.doc", "Chap3.doc") pgNo = 0 For n = 0 To UBound(fileNames) thisFile = pathName & fileNames(n) Application.Documents.Open (thisFile) ActiveDocument.Sections(1).Headers(1).PageNumbers.StartingNumber = pgNo + 1 Set aRange = ActiveDocument.Range aRange.Collapse Direction:=wdCollapseEnd aRange.Select pgNo = Selection.Information(wdActiveEndAdjustedPageNumber) Application.Documents(thisFile).Close Savechanges:=wdSaveChanges Next n End Sub
如果您不想使用字段或宏来进行页码编号,则可以重新考虑文档结构,并将所有不同的文档合并为一个文档。您还可以完全摆脱Word的困扰,并在桌面发布程序(例如InDesign)中进行页面布局,该程序专门用于处理多文件页面编号。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。
链接:/ wordribbon-WordTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(1843)适用于Microsoft Word 97、2000、2002和2003。您可以为Word(Word 2007)的功能区界面找到此技巧的版本。和更高版本)在这里:
链接:/ wordribbon-Automatic_Page_Numbers_across_Multiple_Documents [跨多个文档的自动页码]。