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

问题比较复杂,我慢慢说:我现有一百多个word文档,每个文档内有一到两个标签,标签名为aa和bb,我需要把所有标签提取到一个Excel中,现在遇到的问题是:一,假设d文件... 问题比较复杂,我慢慢说:
我现有一百多个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
大神的代码很好,但不能批量提取,遇到只有一个标签时会报错。希望能有人再做解答,万分感谢。
展开
 我来答
百度网友ca64c0c
2013-01-29 · TA获得超过4666个赞
知道大有可为答主
回答量:2991
采纳率:61%
帮助的人:1475万
展开全部
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式