Mahmud要求一种打印文档的个性化副本的方法。他从常规文本文件中的名称列表开始,每行一个,并且他想为每个名称打印一份当前Word文档的副本。此外,他希望将该人的名字放在文档的标题中。

执行此任务的过程非常简单:打开文本文件,获取名称,将其放在标题中,然后打印文档。获取另一个名称,然后重复该过程,直到文件中没有其他名称为止。下面的宏实现了这样的过程:

Sub PutNamesInHeader()

Dim sName As String

Open "c:/names.txt" For Input As #5     Do While Not EOF(5)

' get the name         Line Input #5, sName

ActiveWindow.ActivePane.View.SeekView = _           wdSeekCurrentPageHeader         Selection.WholeStory         Selection.Delete         Selection.TypeText Text:=sName

ActiveWindow.ActivePane.View.SeekView = _           wdSeekMainDocument         ActiveDocument.PrintOut     Loop

Close #5

ActiveWindow.ActivePane.View.SeekView = _       wdSeekCurrentPageHeader     Selection.WholeStory     Selection.Delete     ActiveWindow.ActivePane.View.SeekView = _       wdSeekMainDocument End Sub

宏的棘手部分是使用.SeekView属性来指定您要使用的文档中的哪个故事。如此处实现的,.SeekView属性被重复使用以在标题区域和主文档之间切换。循环后(获取名称和打印)

完成后,将清除标题区域,然后将.SeekView切换回主文档。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(4366)适用于Microsoft Word 2007、2010、2013和2016。您可以在此处找到适用于Word较旧菜单界面的本技巧的版本: