5,172
社区成员




Sub TableDoc2Xls()
Dim tb As Table, ce As Cell, ro As Row, r As Index, c As Index, dic As Object, ex As Object
Dim tt As String, arr
Set dic = CreateObject("scripting.dictionary")
For Each tb In ThisDocument.Tables
For Each ro In tb.Rows
tt = ""
For Each ce In ro.Cells
tt = tt & "`" & ce.Range.Text
Next
tt = Replace(Mid(tt, 2, 99999), Chr(13) & Chr(7), "")
dic(tt) = Split(tt, "`")
Next
Next
arr = dic.items
Set ex = CreateObject("excel.application")
With ex
.Visible = True
.workbooks.Add
.sheets(1).Cells(1, 1).Resize(UBound(arr) + 1, UBound(arr(0)) + 1) = arr2xlarr(arr)
End With
End Sub
Function arr2xlarr(arr)
Dim tarr(), i As Integer, j As Integer, rs As Integer, cs As Integer
rs = UBound(arr) + 1: cs = UBound(arr(0)) + 1
ReDim tarr(rs, cs)
For i = 1 To rs
For j = 1 To cs
tarr(i, j) = arr(i - 1)(j - 1)
Next
Next
arr2xlarr = tarr
End Function