Barry有一个相当大的Word文档(约50页),其中包含数百个用于构建索引的XE字段。他想知道是否有一种方法可以对文档中存在多少个XE字段进行计数,而不涉及手工计数。

您可以通过几种方法来满足此需求。首先是依靠Word的“查找和替换”功能。以下是简单的步骤:

。从工具菜单中选择选项。 Word将显示“选项”对话框。

。确保显示了“查看”选项卡。 (请参见图1。)

。确保在文档中显示隐藏的文本。 (只需确保选中“隐藏”或“所有”复选框。)

。单击确定。

。按Ctrl + H。 Word将显示“查找和替换”对话框的“替换”选项卡。 (请参见图2。)

。在“查找内容”框中,输入“ ^ 19 XE”(不带引号)。

。在“替换为”框中,输入“ ^&”(同样,不带引号)。

。单击全部替换。

Word查找所有XE字段并显示进行了多少次替换的计数。这是您想要的数量。代码^ 19(在步骤6中)是开头字段括号的字符代码,指示仅字段应匹配。现在,您可以根据需要关闭“隐藏文本”的显示。

关于此步骤序列,需要注意几件事。

首先,有些人可能认为上面缺少一个步骤:

按Alt + F9以显示文档中的所有域代码。

实际上,不需要此步骤,因为只要可见隐藏文本,XE字段就会一直显示。换句话说,按Alt + F9不会以一种或另一种方式影响其显示。但是,如果要计算XE字段以外的其他字段,则需要在执行步骤之前显示字段代码。

还要注意的另一件事是,Word涉及可在开场括号后加上的空格数时比较宽容。上面的步骤仅查找XE字段,其中的单个空格将开头字段大括号(^ 19)和XE代码分隔开。如果您的字段包含更多空格(或不包含空格),那么将不计算该字段的那些实例。因此,您可能只想搜索XE(没有^ 19代码和空格)并打开“区分大小写”复选框。只要您的文档中没有其他大写XE字符实例,此方法就起作用。

您还可以使用一些简单的宏来计算XE字段。如果文档中唯一的字段是XE字段,则该宏非常简单,确实:

Sub CountFields()

Dim iCnt As Integer

iCnt = ActiveDocument.Fields.Count     MsgBox "There are " & iCnt & " fields in the document."

End Sub

但是,如果您的文档中还有其他字段,则此方法将无效。请记住,字段用于将索引实际放置在文档中。因此,如果将XE字段用于索引条目,则可能使用字段来插入实际的索引本身。而且,当然,文档中可能还有许多其他字段用于其他目的。在这种情况下,您的宏需要检查每个字段并确定它是否为XE字段。

Sub CountXEFields()

Dim iCnt As Integer     Dim f As Field

For Each f In ActiveDocument.Fields         If f.Type = wdFieldIndexEntry Then iCnt = iCnt + 1     Next     MsgBox "There are " & iCnt & " XE fields in the document."

End Sub

此宏检查每个Field对象的Type属性,以确保它是XE字段。如果是这样,它将被添加到计数中,然后该计数将显示在宏的末尾。

注意:

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

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

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(11752)适用于Microsoft Word 97、2000、2002和2003。您可以在Word(Word 2007)的功能区界面中找到此技巧的版本。和更高版本)在这里: