|
楼主 |
发表于 2022-11-28 09:42
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
- Sub 提取word信息()
- Sheet1.Cells.ClearContents
- Dim fso, fp, arr, wd, f, n%, fname$
- Set fso = CreateObject("scripting.filesystemobject")
- Set fp = fso.GetFolder(ThisWorkbook.Path)
- ReDim arr(1 To 1000, 1 To 100)
- Set wd = CreateObject("word.application")
- n = 0
- For Each f In fp.Files
- If Right(f, 3) = "doc" Or Right(f, 4) = "docx" Then
- n = n + 1:
- arr(n, 1) = fso.getbasename(f)
- fname = fso.getfilename(f)
- With wd.Documents.Open(ThisWorkbook.Path & "" & fname, True, True)
- wd.Visible = True
-
- r = 1
- For i = 2 To 6
- For j = 1 To 4
- r = r + 1
- arr(n, r) = .Tables(1).Cell(i, j).Range
- Next j
- Next i
-
- .Close
- End With
- End If
- Next
- wd.Quit
- Sheets(1).[a1].Resize(UBound(arr), UBound(arr, 2)) = arr
- ActiveSheet.UsedRange.Replace "", ""
- ActiveSheet.UsedRange.NumberFormatLocal = "@"
- End Sub
复制代码
liulang0808老师,您好。非常感谢您的指导。您的代码基本上解决了变量的问题。
但是因为不同word文件表格行数不定,代码和提取结果还存在2个问题:
1.代码中的word最大行(”For i = 2 To 6“的6),如何实现自动化获取?
如何在不同表格行的word文件中自动获取到最大行值的信息?
2.提取结果中最大行的word提取信息正确。但是小于最大行的word文件提取的信息,则用最后一行数据补齐到最大行的数据列。
比如在例子中最大行是6的word信息提取正确,但是5行和4行的word文件用最后一行数据补齐到6行,多出来这些补齐的数据。
|
-
|