提取路径、文件名
- ph = "E:\\测试\" ' # 指定提取目录
- fl = Dir(ph & "*.doc*") ' # 提取文件名
利用dir函数可以轻松获取目录下的文件名。
执行核心 - 内循环
If t <> 0 Then For i = 1 To t ' # 内层循环读写表格 arr(s, 1) = WorksheetFunction.Clean(tbl(i).Cell(1, 2).Range) arr(s, 2) = WorksheetFunction.Clean(tbl(i).Cell(1, 4).Range) arr(s, 3) = WorksheetFunction.Clean(tbl(i).Cell(2, 2).Range) arr(s, 4) = WorksheetFunction.Clean(tbl(i).Cell(2, 4).Range) arr(s, 5) = WorksheetFunction.Clean(tbl(i).Cell(3, 1).Range) s = s + 1 ' # 数组自增量 Next i End If内层循环解决的是同一word文档内部不同表格取值问题。
利用 tbl(i).Cell(1, 2).Range 获取word表格数据。
利用 WorksheetFunction.Clean 清理文字格式。
t = tbl.Count ,T就是表格数量。
s控制数组纵向长度,在excel里就是行数。
If t <> 0 Then End Ifif语句判断是否存在表格,没有就执行其他循环。
有就执行内循环。
For i = 1 To t ' # 内层循环读写表格 Next iFor循环执行内层循环读写表格。
执行核心 - 外循环
Do While fl <> "" ' # 外层循环依次提取文档 fl = ph & fl ' # 待提取文档路径+文件名 Set wdc = wap.documents.Open(fl) ' # 打开待提取文档 Set tbl = wdc.tables ' # word表格实例化wdc.Close ' # 循环内依次关闭word文档 Set wdc = Nothing ' # 清空word文档进驻内存 fl = Dir ' # 循环执行下一份文档 Loop这段外循环是用来打开目录下不同文档。
fl = ph & fl ' # 待提取文档路径+文件名ph提取的是目录,fl提取的是文件名。
ph&fl就是完整路径。
Set wdc = wap.documents.Open(fl) ' # 打开待提取文档 Set tbl = wdc.tables ' #两行语句分别表示wdc实例化、tbl实例化。
wdc.Close ' # 循环内依次关闭word文档外循环,打开关闭,打开关闭。
wdc.Close ' # 循环内依次关闭word文档 Set wdc = Nothing ' # 清空word文档进驻内存wdc收尾工作,关闭,清理进驻内存。
fl = Dir循环执行下一份文档
Do While fl <> "" Loop当待提取文档不为空串就一直执行。
180行,5列的900个数据的二维表,10秒完成统计工作。
私信发送 关键词 获取代码下载,提供代码修改服务。
关键词:VBA501
閱讀更多 編程助力職場
的文章
關鍵字:
Word
Excel
表格