问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么实现用vba 批量的搜索文档内容并收集到一张excel表里面

发布网友 发布时间:2022-04-26 10:52

我来回答

2个回答

热心网友 时间:2022-06-27 14:00

 Sub 提取数据()
   Dim Word As Object, WordDoc As Object
   Dim Path As String, Fname As String, Again As Boolean
   Dim Row As Long, Pos As Double, Pos2 As Double
   Dim Data1 As String, Data2 As String, Data3 As String
   Row = 2
   Path = ActiveWorkbook.Path
   On Error Resume Next
   Set Word = GetObject(, "Word.Application")
   If Err.Number Or Word Is Nothing Then Set Word = CreateObject("Word.Application")
   Word.DisplayAlerts = 0
   Word.Visible = 0
   Fname = Dir(Path & "\*.doc")
   If Fname = "" Then Fname = Dir(Path & "\*.docx")
Above2007:
   If Fname <> "" Then
    Do
     Data1 = ""
     Data2 = ""
     Data3 = ""
     Set WordDoc = Word.documents.Open(Path & "\" & Fname)
     Word.Selection.WholeStory
     Pos = InStr(Word.Selection, "增斜段")
     Pos2 = InStr(Pos + 4, Word.Selection, vbCr)
     If Pos Then Data1 = Mid(Word.Selection, Pos + 5, Pos2 - Pos - 5)
     Pos = InStr(Word.Selection, "造斜段")
     Pos2 = InStr(Pos + 4, Word.Selection, vbCr)
     If Pos Then Data2 = Mid(Word.Selection, Pos + 5, Pos2 - Pos - 5)
      Pos = InStr(Word.Selection, "造斜点")
      Pos2 = InStr(Pos + 4, Word.Selection, vbCr)
      If Pos Then Data3 = Mid(Word.Selection, Pos + 5, Pos2 - Pos - 5)
      Pos = InStrRev(Fname, ".")
      Fname = Left(Fname, Pos - 1)
      On Error Resume Next
      ActiveSheet.Cells(Row, 1).Value = Fname
      If Err.Number Then ActiveSheet.Cells(Row, 1) = Fname
      On Error Resume Next
      ActiveSheet.Cells(Row, 2).Value = Data1
      If Err.Number Then ActiveSheet.Cells(Row, 2) = Data1
      On Error Resume Next
      ActiveSheet.Cells(Row, 3).Value = Data2
      If Err.Number Then ActiveSheet.Cells(Row, 3) = Data2
      On Error Resume Next
      ActiveSheet.Cells(Row, 4).Value = Data3
      If Err.Number Then ActiveSheet.Cells(Row, 4) = Data3
      WordDoc.Saved = True
      WordDoc.Close
      Row = Row + 1
      Fname = Dir()
      Loop While Fname <> ""
      Fname = Dir(Path & "\*.docx")
      If Fname <> "" And Not Again Then
       Again = True
       GoTo Above2007
      End If
     Word.DisplayAlerts = -1
     Word.Quit
     Set Word = Nothing
     Set WordDoc = Nothing
     ActiveWorkbook.Save
     MsgBox "提取完毕!" & vbCrLf & "更多功能,请参见文件批量处理百宝箱V10.0", vbInformation + vbOKOnly, "消息"
   End If
   
End Sub

将该VBA宏代码原样复制粘贴到Excel的宏代码中,然后保存该excel文档,将所有待处理的word文档集中在一个文件夹中,并将这个Excel文件也保存在这个文件夹中,然后打开这个excel文件,打开宏代码,按F5键运行即可。

热心网友 时间:2022-06-27 14:00

vba读取word内容会弄吗?
dir(*.Doc)知道怎么用吗?
大约思路吧
1、枚举所有word文档
2、查找word中的你需要的内容
3、填写到excel表中
呵呵,不知道你vba水平如何,但按你的题目,我也只能回答这么多了。按这个思路百度去,总会找到办法的。追问我现在已经实现批量转换word文档转换成txt了。我看excel好像直接有导入txt的功能。我的txt导入excel以后变成了每一行文字占第一列的一个单元格。目前的问题是,我需要的文本为“  造斜点井深:1242.00m”这一行,但是我需要实现两个问题,第一个就是能不能把导入的这个文件名跟这一行数据放在一行对齐?第二个就是怎么提取里面的数字?用不用vba都没关系了。

追答造斜点井深:1242.00m 是否肯定都在某个格式?比如A5单元格。如果是,直接判断提取

if instr(cells(i,1),"造斜点井深")>0 then ....处理
“  造斜点井深:1242.00m”提取1242.00的办法

x=“  造斜点井深:1242.00m”

y=val(split(x,":")(1))

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 directx redist.exe是什么软件 EXCEL,用VBA处理,批量替换各工作簿的文本。求一段实用代码. directx_Jun2010_redist安装在哪个文件夹 利用VBA实现excel查找功能 单机游戏文件中redist文件夹下的98M的文件夹(里面有DXSETUP.exe)可以删除吗 求高手解答如何使用EXCEL的宏进行模糊搜索的批量替换(或vlookup)? 我下载的刺客信条3怎么没有Redist文件的 Excel 如何在vba模块中进行批量代码的替换 魔兽冰封王座redist文件在哪里下载 有的发我一下谢谢 312571950 如何使用VBA把一个文件夹里面的全部EXCEL表进行一次性批量替换字符?求程序 魔兽redist文件 Excel 怎么用VBA代码快速查找替换指定字符 魔兽争霸3 redist文件丢失 哪位大侠帮一下 神奇蜘蛛侠如何把游戏目录下的redist文件夹里的东西都装 发图 Redist文件里面是空白的 怎么办 我就是使命召唤没有声音 如何用VBA来一次性完成执行excel中的查找,替换 directx_Jun2010_redist怎么安装 EXCEL如何利用VBA实现批量字段的替换? 游戏文件里有个Redist文件夹是用来干什么的? redist是什么文件 魔兽争霸redist文件下载 excel 2010 用VBA批量替换单元格中的公式 跪求魔兽争霸3 1.20的redist文件 求魔兽争霸redist文件 求高手指教EXCEL如何用VBA在工作簿中查找包含某字段的行? excel vba 想写一个工作表内容批量检索替换的小程序 但是菜鸟一个下面试程序 报错了 求指导 directx_feb2010_redist怎么安装 excel 2010 用VBA怎么批量替换链接 EXCEL表中批量替换用函数还是VBA好呢? 怎样在excel原有的方框的文字下面打里内加入√ 在excel文字后批量添加同样的符号? 如何在excel表格内容后加符号 在Excel表格中,如何在文本格式下在特定的数字后面加上符号? 在excel表中怎样在不同单元格文字后面添加同一个符号? 如何在Excel表格中 给文字之间插入/符号 怎么在excel表后面直接加文字跟符号 青海盐湖有哪些 青海的盐湖分布在哪里? 茶卡盐湖在哪里? 中国的盐湖在哪?