vba 循环打开多个word文件,提取数据依次存放到一个excel文件里,如何编程? 80
假设有1-300个word文件,文件名为1.doc,2.doc........300.doc。如何将其中指定的内容,提取到一个excel表格中?本人已经测试成功一个文件提...
假设有1-300个 word 文件,文件名为1.doc,2.doc........300.doc。如何将其中指定的内容,提取到一个excel表格中?
本人已经测试成功一个文件提取相关内容。但是不会依次循环打开不同文件,提取信息。
测试成功程序:
Sub 按钮1()
Dim myPath As String
Set Wdapp = CreateObject("Word.Application")
Wdapp.Visible = True
Application.ScreenUpdating = False '关闭屏幕刷新
' On Error Resume Next'捕捉错误
myPath = ThisWorkbook.Path & "\1.doc" '定义word文件路径,自己修改
Set wdDoc = Wdapp.Documents.Open(myPath) '打开word
wdDoc.Activate
sr = wdDoc.Content '将word的文档内容赋予变量sr
MsgBox Mid(sr, InStr(sr, "产品名称") + 4, 30)
'Range("A1") = Mid(sr, InStr(sr, "产品名称") + 4, 30)
Range("b4") = Mid(sr, InStr(sr, "检验报告编号:") + 7, 25)
Range("o4") = Mid(sr, InStr(sr, "四、检验结果") + 58, 5)
wdDoc.Close '关闭word
Wdapp.Quit
Set Wdapp = Nothing
Set wdDoc = Nothing
Application.ScreenUpdating = True '开启屏幕刷新
End Sub
推荐可能用到 相关程序:
1 ‘**********************
Dim myPath As String
Dim myFileName As String
Dim i As Long
myPath = ThisWorkbook.Path & "\" '指定文件夹
myFileName = Dir(myPath, 0)
i = 0
Do While Len(myFileName) > 0
Cells(i + 1, 1) = myPath & myFileName '显示文件路径
myFileName = Dir()
i = i + 1
Loop
MsgBox "该文件夹里有" & i & "个文件" '就是你所需要的统计数
是否可以参考:http://zhidao.baidu.com/question/520989330.html?fr=push 展开
本人已经测试成功一个文件提取相关内容。但是不会依次循环打开不同文件,提取信息。
测试成功程序:
Sub 按钮1()
Dim myPath As String
Set Wdapp = CreateObject("Word.Application")
Wdapp.Visible = True
Application.ScreenUpdating = False '关闭屏幕刷新
' On Error Resume Next'捕捉错误
myPath = ThisWorkbook.Path & "\1.doc" '定义word文件路径,自己修改
Set wdDoc = Wdapp.Documents.Open(myPath) '打开word
wdDoc.Activate
sr = wdDoc.Content '将word的文档内容赋予变量sr
MsgBox Mid(sr, InStr(sr, "产品名称") + 4, 30)
'Range("A1") = Mid(sr, InStr(sr, "产品名称") + 4, 30)
Range("b4") = Mid(sr, InStr(sr, "检验报告编号:") + 7, 25)
Range("o4") = Mid(sr, InStr(sr, "四、检验结果") + 58, 5)
wdDoc.Close '关闭word
Wdapp.Quit
Set Wdapp = Nothing
Set wdDoc = Nothing
Application.ScreenUpdating = True '开启屏幕刷新
End Sub
推荐可能用到 相关程序:
1 ‘**********************
Dim myPath As String
Dim myFileName As String
Dim i As Long
myPath = ThisWorkbook.Path & "\" '指定文件夹
myFileName = Dir(myPath, 0)
i = 0
Do While Len(myFileName) > 0
Cells(i + 1, 1) = myPath & myFileName '显示文件路径
myFileName = Dir()
i = i + 1
Loop
MsgBox "该文件夹里有" & i & "个文件" '就是你所需要的统计数
是否可以参考:http://zhidao.baidu.com/question/520989330.html?fr=push 展开
3个回答
2019-04-25
展开全部
请问是否可以将完整的运行成功的程序发给我,我也有同样的需求,万分感谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-03-14 · 知道合伙人软件行家
关注
展开全部
用Dir不可以吗?
追问
问题已经解决。谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参考下面的代码:
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Application.ScreenUpdating = False
If MsgBox("需要操作的数据表是:EXCEL2003 格式,请选择:是!" & Chr(13) & "" & Chr(13) & "需要操作的数据表是:EXCEL2007 格式,请选择:否!", vbYesNo, "北极狐提示!!") = vbYes Then
S = "\*.xls"
ss = 4
Else
S = "\*.xlsx"
ss = 5:
End If
F = Dir(ThisWorkbook.Path & S)
Do While F > " "
If F <> ThisWorkbook.Name Then
Set xlBook = Workbooks.Open(ThisWorkbook.Path & "\" & F) '打开已经存在的EXCEL工件簿文件
For Each sh In xlBook.Worksheets '遍历工作表
with sh
'自己的代码
end with
Windows(ThisWorkbook.Name).Activate'回到打开的工作簿
Next
Windows(F).Close (true)'关闭打开的工作簿,并保存。
F = Dir
Loop
Application.ScreenUpdating = True
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Application.ScreenUpdating = False
If MsgBox("需要操作的数据表是:EXCEL2003 格式,请选择:是!" & Chr(13) & "" & Chr(13) & "需要操作的数据表是:EXCEL2007 格式,请选择:否!", vbYesNo, "北极狐提示!!") = vbYes Then
S = "\*.xls"
ss = 4
Else
S = "\*.xlsx"
ss = 5:
End If
F = Dir(ThisWorkbook.Path & S)
Do While F > " "
If F <> ThisWorkbook.Name Then
Set xlBook = Workbooks.Open(ThisWorkbook.Path & "\" & F) '打开已经存在的EXCEL工件簿文件
For Each sh In xlBook.Worksheets '遍历工作表
with sh
'自己的代码
end with
Windows(ThisWorkbook.Name).Activate'回到打开的工作簿
Next
Windows(F).Close (true)'关闭打开的工作簿,并保存。
F = Dir
Loop
Application.ScreenUpdating = True
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询