借用老王的东东,使用窗体域: 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 .Books.Add "F" + CStr(k), .Tables(1).Cell(i, j).Range .FormFields.Item(k).Range.Books.Add .Books(k), .Tables(1).Cell(i, j).Range .FormFields(k).ExitMacro ="get_value" '数据传给recordset End If Next Next MsgBox "窗体域加载完毕。", vbOKOnly, "提示" End With End Sub
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
.Books.Add "F" + CStr(k), .Tables(1).Cell(i, j).Range
.FormFields.Item(k).Range.Books.Add .Books(k), .Tables(1).Cell(i, j).Range
.FormFields(k).ExitMacro ="get_value" '数据传给recordset
End If
Next
Next
MsgBox "窗体域加载完毕。", vbOKOnly, "提示"
End With
End Sub