Sub add_winFields()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim tlen As Integer
Dim slen As Integer
With ActiveDocument
' .FormFields.Shaded = True
k = 0
.Tables(1).Select
For i = 2 To .Tables(1).Rows.Count
For j = 1 To .Tables(1).Columns.Count
.Tables(1).Cell(i, j).Select
tlen = Len(.Tables(1).Cell(i, j).Range.Text)
slen = Len(.Tables(1).Cell(i - 1, j).Range.Text)
If tlen = 2 And slen > 2 Then
k = k + 1
.FormFields.Add .Tables(1).Cell(i, j).Range, wdFieldFormTextInput ' wdFieldFormDropDown
.FormFields(k).HelpText = Trim(Replace(.Tables(1).Cell(i - 1, j).Range.Text, Chr(13), ""))
If .Tables(1).Cell(i - 1, j).Range.Font.Color = wdColorRed Then '调入项
.FormFields(k).EntryMacro = "check_field"
.FormFields(k).Range.Font.Color = wdColorDarkRed
End If
.FormFields.Item(k).OwnStatus = True
.FormFields.Item(k).StatusText = .FormFields(k).HelpText
' .FormFields.Item(k).Range.Borders(1).Color = wdColorAutomatic
.Bookmarks.Add "F" + CStr(k), .Tables(1).Cell(i, j).Range
.FormFields.Item(k).Range.Bookmarks.Add .Bookmarks(k), .Tables(1).Cell(i, j).Range
.FormFields(k).ExitMacro ="get_value" '数据传给recordset
End If
Next
Next
MsgBox "窗体域加载完毕。", vbOKOnly, "提示"
End With
End Sub