怎么是用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
大神的代码很好,但不能批量提取,遇到只有一个标签时会报错。希望能有人再做解答,万分感谢。 展开
我现有一百多个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
大神的代码很好,但不能批量提取,遇到只有一个标签时会报错。希望能有人再做解答,万分感谢。 展开
展开全部
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询