假设您正在开发一个表单,并且需要将一个表单域的内容复制到另一个表单域。例如,表单可以有多个页面,并且在每个页面的顶部都需要用户名。如果用户只需要输入一次其名称,然后将其自动填写在表单的其他位置,那显然是最简单的。

有两种方法可以解决此问题。第一种方法涉及以下事实:您每次在文档中插入表单字段时,都会自动为该字段的内容添加书签。因此,您可以在整个文档中使用书签引用字段来引用用户在该字段中输入的内容。第二种方法实际上是将信息从一个字段复制到另一个字段。

首先,让我们看一下使用书签的解决方案。每次您在文档中输入表单字段时,都会为其分配一个名称。该名称取决于您输入的表单字段的类型。您可以通过右键单击表单字段并从上下文菜单中选择“属性”来发现名称(并根据需要更改名称)。这将显示“表单字段选项”对话框,并且在对话框的下部是该字段的书签名称。 (它将是诸如Text1之类的名称。)您应该记住要在其他地方使用其内容的表单字段的名称。

现在,将插入点放置在希望表单内容出现的任何位置。例如,在您希望表单用户名第二次或第三次出现的位置。在这里,您应该按照以下步骤操作:

。按Ctrl + F9插入一对字段括号。插入点应在括号之间。

。键入REF,然后输入您先前记下的表单字段的名称。

例如,如果表单字段的名称为Text1,则应键入REF Text1。

。按F9键显示字段结果,而不是字段代码。

请理解,即使您可以通过这种方式重复使用表单字段内容信息,当用户离开表单字段时,该信息也不会自动更新。 (是,不是。)您必须信任Word,因为在打印或查看文档的打印预览之前,字段(REF字段)的内容通常不会更新。 (此行为由“选项”对话框的“打印”选项卡上的选项控制。)当然,也可以通过选择该字段并按F9来更新该字段。这两种方法都需要用户手动进行操作,但是可以开始创建自动执行的宏。

复制字段内容的第二种通用​​方法涉及从字面上将信息从一个字段复制到另一字段。鉴于已经讨论过的书签功能,必须使用宏来完成此操作,并且看起来有些过头了。但是,有时您确实需要在文档中使用两个表单域,并且您希望第二个表单域默认为用户在第一个表单域中输入的内容。在这种情况下,您必须记下Word分配给表单字段的名称。为了便于讨论,我们假设这些名称分别为Text1和Text2,并且您要在用户离开Text1后立即将Text1的内容复制到Text2。您可以使用以下简单的宏:

Sub CopyField()

Dim Temp as String

Temp = ActiveDocument.FormFields("Text1").Result    ActiveDocument.FormFields("Text2").Result = Temp End Sub

现在,您需要配置第一个字段,以便每次离开该字段时都执行宏。您可以按照以下步骤进行操作:

。右键单击第一个字段。这将显示一个上下文菜单。

。从上下文菜单中选择属性。 Word将显示“表单域选项”对话框。

。该对话框包含两个字段,您可以在其中指定在输入和退出该字段时要运行的宏。

。使用“退出”下拉列表选择刚创建的宏(CopyField)。

。单击确定。

现在,保护字段的文档并保存表单模板。下次您从模板创建新文档时,用户将能够填写字段。退出Text1字段后,Text2字段将立即用Text1中输入的内容进行更新。

了解用户随后可以更改Text2中的任何内容;更改只是设置默认值。您还应该理解,如果用户“循环回去”并再次更改Text1,然后退出该字段,则无论之前存在什么内容,Text2的内容都会更改。

注意:

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

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

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