Excel玩跨界 Word数据采集录入竟这么容易

办公便签2016-12-19 10:01应用 标签:数据采集 Excel Word

根据工作要求,有时候会安排发放一些基本信息调查表,内容各不相同,等收回来的时候,一个一个文档进行重新录入,工作量十分巨大。有没有好的办法能够自动将数据统一录入到一起呢?Office的最大优势就是联动,尤其从2013版本开始,PPT、Word、Excel里功能互相融合的趋势更加明显。今天小编就分享一个通过Word文件收集信息,使用Excel自动摘录数据的方法。

001

首先按照正常的工作要求制作Word信息收集表,制作完毕后修改待填信息框,切换到开发模式选项卡,点击“Aa”格式文本内容控件(如果没有,点击文件—选项—自定义功能区,右侧勾选“开发工具”)。

002

接下来单击信息框然后在开发工具中点选“设计模式”。

003

弹出对话框输入标题,这就是信息框的信息提示文字,要是有需求,还可以修改边框颜色、文本样式等等。

004

每个信息框都做了相应的修改后,点击开发模式中的“限制编辑”,在Word右侧栏中,勾选“限制对选定的样式设置格式”和“仅允许在文档中进行此类型的修改”并选中“填写窗体”。

005

006

Word部分就设置完毕了,这时候可以将文件发送给被收集信息者,待返回后,开始用Excel批量自动摘录Word填表信息。打开Excel,同样是切换到开发工具选项卡,点选最左侧的“Visual Basic”。

007

双击Sheet1,填写宏代码(登录PC版微信,订阅号中找到办公便签,点击查看历史消息找到本文再进行复制):

008

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中名称略有不同)。

009

010

回到Excel主界面,还是在开发工具选项卡中,点击“宏”,选中刚才编辑的这个宏命令,单击“运行”,这时Excel会自动弹出文件选择框,找到要摘录信息的Word文档点选打开,Excel就可以开始自动摘录信息了。这样一来,数据摘录的工作就完全依靠电脑自动完成了,大大节省了工作时间,也避免了手工摘录的出错几率。

011

012