分享

怎么是用VBA批量提取word文档指定内容到Excel

 昵称15278847 2014-01-02
怎么是用VBA批量提取word文档指定内容到Excel?
2013-01-29 14:08 MrArjun | 分类:办公软件 | 浏览676次
问题比较复杂,我慢慢说:
我现有一百多个word文档,每个文档内有一到两个标签,标签名为aa和bb,我需要把所有标签提取到一个Excel中,现在遇到的问题是:
一,假设d文件夹内三个word文档335、336、337,怎么做到批量读取word,并逐一提取?
二,每个word内标签不一定,有的有aa和bb,有的只有aa或者bb其中一个,怎么做到有就提取,没有就返回“无”?
不知道我的描述是否清楚。我之前问过如何提取word标签,地址为http://zhidao.baidu.com/question/520698820?quesup2&oldq=1
大神的代码很好,但不能批量提取,遇到只有一个标签时会报错。希望能有人再做解答,万分感谢。

扫描二维码下载

下载知道APP
10分钟有问必答!

建议:可使用微信的“扫一扫”功能扫描下载

2013-01-29 14:27 提问者采纳
Sub abc()
Dim App, WrdDoc, MyPath, MyFile, BM, Str
Mypath = "文件实际路径\*.doc" '请修改实际储存路径!
Set App = CreateObject("Word.Application") '用Set关键字创建Word应用成序对象!
MyFile = Dir(Mypath) ' 获得第一个WORD文档
do while MyFile <> "" ' 遍历Mypath下面的所有WORD文档
App.Visible = True
Set WrdDoc = App.Documents.Open(MyFile) '打开这个Word文件!
for each BM in WrdDoc.Bookmarks ' 遍历文档中的所有书签
Str = BM.Range ' 读取书签内容
next BM

WrdDoc.Close ' 关闭文件

MyFile = Dir ' 下一个WORD文档

Loop
Set App = Nothing
End Sub
追问
为什么会在“Set WrdDoc = App.Documents.Open(MyFile) ”这一步报错,提示找不到该文件呀?在本地窗口看到已经找到文档了。
回答
抱歉,没有实际调试代码
DIR函数只返回文件名,不包含完整路径
所以请重新修改为以下代码:
Sub abc()
Dim App, WrdDoc, MyPath, MyFile, BM, Str
Mypath = "文件实际路径" '请修改实际储存路径!
Set App = CreateObject("Word.Application") '用Set关键字创建Word应用成序对象!
MyFile = Dir(Mypath & "\*.doc") ' 获得第一个WORD文档
do while MyFile <> "" ' 遍历Mypath下面的所有WORD文档
App.Visible = True
Set WrdDoc = App.Documents.Open(Mypath & "\" & MyFile) '打开这个Word文件!
for each BM in WrdDoc.Bookmarks ' 遍历文档中的所有书签
Str = BM.Range ' 读取书签内容
next BM
WrdDoc.Close ' 关闭文件
MyFile = Dir ' 下一个WORD文档
Loop
Set App = Nothing
End Sub
追问
这次在“MyFile = Dir(Mypath & "\*.doc")”报错了,提示文件名或文件号错误。
回答
我测试过,没有问题啊?
请看一下你实际的Mypath,结尾不能有"\",否则在DIR中和"\*.doc"合并就成了"...\\*.doc"
提问者评价
不好意思,最后是我自己的问题。非常感谢你!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约