Sub 自动把word表格转换到Excel()
On Error Resume Next ''''''出错继续(应对不规范的表格)
''''''重命名所有WORD文件为大写“A”。如 A (1).docx。
''maxcolumn(xex)
Dim maxrowend2
Dim wdApp
For w3 = 1 To 2 想合并多少个文档?
maxrowend2 = Sheets("sheet1").[a65536].End(xlUp).Row
Set wdApp = CreateObject("word.application")
path_ = ThisWorkbook.Path
wdApp.Documents.Open (path_ & "\" & "A (" & w3 & ")" & ".docx")
wdApp.Visible = True
n = wdApp.ActiveDocument.Tables.Count ''''有多少个表格
'x = 0
x = maxrowend2 + 1 ''''初始行号
y = 0
For i = 1 To n
rs = wdApp.ActiveDocument.Tables(i).Rows.Count ''''有多少个行
cs = wdApp.ActiveDocument.Tables(i).Columns.Count ''''有多少个列
''''''ghg = MsgBox(rs & "行列" & cs) '''''''''''''''''''''''''''''''提示
For m = 1 To rs
x = x + 1
y = 1
ThisWorkbook.Sheets("Sheet1").Cells(x, 1) = "源自A (" & w3 & ")" & ".docx" & "; 第" & i & " 表 " ''''''''''9999999999999999999
For n = 1 To cs
vv = wdApp.ActiveDocument.Tables(i).Cell(m, n)
ThisWorkbook.Sheets("Sheet1").Cells(x, y + 1) = Mid(vv, 1, Len(vv) - 1) '''空第一列
y = y + 1
Next
Next
Next
wdApp.Application.Quit '关闭word文档
Set wdApp = Nothing '释放对象变量的内存
Next
End Sub
文件名有规律,或者有文件列表。每个被引用的文件都需要打开。
我举例说明,这个办法似乎比较笨。
01,02,汇总,三个文件
汇总中
A1是01中SHEET1表,A列数据
A2是02中SHEET1,A列数据汇总中
汇总中一个表A1文本输入01,B1中输入02,后面的03,04就拉过去
A2输入=CONCATENATE("=[",C1,".xls]sheet1!a1")然后往后拉
然后就在选中复制,在下一行张贴数值,双击后就出来。然后再下拉就全部弄好了。
应该有更好方法,虽然很少用到,期待高人的指点。