如何通過Word收集信息,Excel自動摘錄數據?
根據工作要求,有時候會安排發放一些基本信息調查表,內容各不相同,等收回來的時候,一個一個文檔進行重新錄入,工作量十分巨大。有沒有好的辦法能夠自動將數據統一錄入到一起呢?Office的最大優勢就是聯動,尤其從2013版本開始,PPT、Word、Excel里功能互相融合的趨勢更加明顯。今天小編就分享一個通過Word文件收集信息,使用Excel自動摘錄數據的方法。
首先按照正常的工作要求制作Word信息收集表,制作完畢后修改待填信息框,切換到開發模式選項卡,點擊“Aa”格式文本內容控件(如果沒有,點擊文件—選項—自定義功能區,右側勾選“開發工具”)。
接下來單擊信息框然后在開發工具中點選“設計模式”。
彈出對話框輸入標題,這就是信息框的信息提示文字,要是有需求,還可以修改邊框顏色、文本樣式等等。
每個信息框都做了相應的修改后,點擊開發模式中的“限制編輯”,在Word右側欄中,勾選“限制對選定的樣式設置格式”和“僅允許在文檔中進行此類型的修改”并選中“填寫窗體”。
Word部分就設置完畢了,這時候可以將文件發送給被收集信息者,待返回后,開始用Excel批量自動摘錄Word填表信息。打開Excel,同樣是切換到開發工具選項卡,點選最左側的“Visual Basic”。
雙擊Sheet1,填寫宏代碼(登錄PC版微信,訂閱號中找到辦公便簽,點擊查看歷史消息找到本文再進行復制):
Option Base 1
Sub readDoc()
Dim WordApp As Word.Application
Set WordApp = CreateObject("Word.Application")
Dim WordDoc As Word.Document
Dim diag1 As FileDialog
Dim return1 As String
Dim filePathArray()
Set diag1 = Application.FileDialog(msoFileDialogFilePicker)
'定義文件選擇對話框
With diag1
.AllowMultiSelect = True '設置文件選擇對話框能夠選擇多個文件
return1 = .Show '打開文件選擇對話框
n = .SelectedItems.Count '將選中文件個數保存至變量n
If return1 = -1 Then
'如選中文件(retun1=-1)則將選中的文件路徑保存到filePathArray數組
ReDim filePathArray(n)
For i = 1 To n
filePathArray(i) = .SelectedItems(i)
Next
Else '如果未選中任何文件則提示
MsgBox "未選擇任何文件", vbExclamation
End If
End With
For j = 1 To n
Set WordDoc = WordApp.Documents.Open(filePathArray(j))
'根據filePathArray數組中的路徑逐個打開Word文件
Dim ccSet
Set ccSet = WordDoc.ContentControls
'將ccSet設為打開文檔的內容控件集合
i = 1
For Each cc In ccSet '遍歷所有內容控件
Application.ActiveSheet.Cells(j, i) = cc.Range.Text '將內容控件內容保存至單元格
i = i + 1
Next
WordDoc.Close '關閉當前Word文檔
Next
WordApp.Quit
End Sub
注意,抄錄好宏代碼后,不要著急關閉,點選當前Visual Basic界面上方工具欄的“工具—引用”,在“可使用的引用”中找到“Microsoft Word 16.0 Object Library”并勾選確定(Word2013中名稱略有不同)。
回到Excel主界面,還是在開發工具選項卡中,點擊“宏”,選中剛才編輯的這個宏命令,單擊“運行”,這時Excel會自動彈出文件選擇框,找到要摘錄信息的Word文檔點選打開,Excel就可以開始自動摘錄信息了。這樣一來,數據摘錄的工作就完全依靠電腦自動完成了,大大節省了工作時間,也避免了手工摘錄的出錯幾率。