使用表单时,您将表单另存为模板,这些模板用作Word中新文档的基础。有时候您想添加一个表单字段,每次您基于表单模板创建新文档时,表单字段都会增加。例如,您可能具有数据输入表单所需的序列号,或者您可能希望使用表单字段来表示http://www.formville.com/C2_free-invoice-forms.html[invoice]数。

Word没有任何奇特的自动递增字段。但是,通过组合Word中已经可用的一些工具,您可以创建模板和表单字段来帮您解决问题。从此宏开始:

Sub AutoNew()

' Exit macro if no fields in document    If ActiveDocument.FormFields.Count = 0 Then Exit Sub    ' Create variables.

Dim OfficeAppName As String    Dim RegSection As String    Dim RegKey As String    Dim FieldObj As Object    Dim RegValue As Long

OfficeAppName = "Word 2002"

RegSection = "UserData"

RegKey = "Current Counter"

' Generate error if form field doesn't exist    On Error GoTo ErrHandler    Set FieldObj = ActiveDocument.FormFields("IncField")

' Get stored registry value, if any    RegValue = GetSetting(OfficeAppName, RegSection, RegKey, 0)

' If not previously set, set to default    If RegValue = 0 Then RegValue = 1    ' Set form field result to stored value    FieldObj.Result = CStr(RegValue)

' Increment and update invoice number    SaveSetting OfficeAppName, RegSection, RegKey, RegValue + 1 ErrHandler:

If Err <> 0 Then       MsgBox Err.Description    End If End Sub

该宏仅应保存在用于创建表单的模板中。该宏必须命名为AutoNew,以便在基于表单模板创建文档时将运行该宏。您还应该确保在文档中有一个名为IncField的文本表单字段,该字段将显示增量编号。在注册表中跟踪该号码,以便将来使用该表格时可以访问它。

请注意宏中设置OfficeAppName变量的行。在此版本的宏中,将其设置为短语“ Word 2002”。如果您使用的是其他版本的Word,则应修改此行,使其引用您的版本,例如“ Word 2000”或“ Word 2003”。

注意:

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

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

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