当您使用文档时,尤其是别人创建的长文档时,可能需要删除文档中的所有字段。如何执行此操作的答案几乎完全取决于“删除”字段的含义。

如果您要摆脱这些字段并用表示该字段结果的纯文本替换它们,那么最简单的方法是选择整个文档(Ctrl + A),然后按Ctrl + Shift + F9 “取消链接”字段。每个地方都有一个字段,该字段将被删除并替换为该字段的结果。

如果您只是想摆脱所有字段并且不关心它们被任何内容替换,则可以使用Word的“查找和替换”功能。请按照下列步骤操作:

。按Alt + F9。这将使文档中的所有域代码可见,而不是这些域的​​结果。

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

。在“查找内容”框中,输入^ d作为要搜索的内容(确保使用小写的d)。这是Word理解为“任何字段”的代码。

。确保“替换为”框为空。

。单击全部替换。

现在,文档中的所有字段都将消失。如果您必须经常使用这种方式来删除字段,则可以创建一个宏来为您处理任务。以下是一个简单的简短宏,它遍历了文档的所有部分并删除了所有字段。

Sub DeleteFields()

Dim rng As Range

For Each rng In ActiveDocument.StoryRanges         With rng.Fields             While .Count > 0                 .Item(1).Delete             Wend         End With     Next End Sub

当然,您可以将宏分配给`link:/ wordribbon-Adding_Tools_to_the_Quick_Access_Toolbar [Quick Access Toolbar]`或快捷键,以便可以尽快将其调用。

应该注意的是,如果您的文档有多个文本框,则此宏只会从主文档和第一个文本框中删除字段。 (不要问为什么;在Word中似乎有些古怪。)如果您不仅仅在第一个文本框中包含字段,那么您将需要另一种宏方法:

Sub DeleteAllFields()

Dim rng As Range     Dim shp As Shape     Dim TxtFrame As TextFrame

For Each rng In ActiveDocument.StoryRanges         With rng.Fields             While .Count > 0                 .Item(1).Delete             Wend         End With

For Each shp In rng.ShapeRange             Set TxtFrame = shp.TextFrame             If Not TxtFrame Is Nothing Then                 If TxtFrame.HasText Then                     With TxtFrame.TextRange.Fields                         While .Count > 0                             .Item(1).Delete                         Wend                     End With                 End If             End If         Next shp     Next rng End Sub

注意:

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

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