2,462
社区成员
发帖
与我相关
我的任务
分享
Private Sub CommandButton1_Click()
Dim myDialog As FileDialog, myItem As Variant, myDoc As Document
Dim myField As FormField, i As Byte, r As Integer
Dim AppExcel As Object, st As Single
On Error Resume Next
Set myDialog = Application.FileDialog(msoFileDialogFilePicker)
With myDialog
.Title = "请选择需处理的文档"
.Filters.Clear
.Filters.Add "所有WORD文件", "*.docx", 1
.AllowMultiSelect = True
If .Show <> -1 Then Exit Sub
End With
st = Timer
Set AppExcel = GetObject(, "Excel.Application")
AppExcel.Application.ScreenUpdating = False
With AppExcel.ActiveWorkbook.ActiveSheet
r = .UsedRange.Row + .UsedRange.Rows.Count - 1
For Each myItem In myDialog.SelectedItems
Set myDoc = Documents.Open(Filename:=myItem, Visible:=False)
For Each myField In myDoc.FormFields
i = i + 1
.Rows(r + 1).Cells(i).Value = myField.Result
Next
i = 0
r = r + 1
myDoc.Close False
Next
End With
AppExcel.Application.ScreenUpdating = True
Set AppExcel = Nothing
MsgBox "Word数据提取完毕!用时:" & Format(Timer - st, 0) & "秒。"
End Sub