选择 table 从 Word 文件复制到 Excel 文件
Choose a table to copy from a Word file into an Excel file
我有一个包含 7 个 table 的 word 文件,我想将其中一个复制到一个 excel 文件中。但是我想每次 运行 选择要复制的 table 宏,因为我会有不同的 word 文件,其中包含不同数量的 table 和不同的 table 复制。
现在我有这段代码可以复制你当时选择的 table 这个词:
Dim wrdTbl As Table
Dim RowCount As Long, ColCount As Long, i As Long, j As Long
Dim oXLApp As Object, oXLwb As Object, oXLws As Object
Set wrdTbl = Selection.Tables(1)
ColCount = wrdTbl.Columns.Count
RowCount = wrdTbl.Rows.Count
Set oXLApp = CreateObject("Excel.Application")
oXLApp.Visible = False
Set oXLwb = oXLApp.Workbooks.Open("C:\Sample.xlsx")
Set oXLws = oXLwb.Sheets(1)
For i = 1 To RowCount
For j = 1 To ColCount
Debug.Print wrdTbl.Cell(i, j).Range.Text
With oXLws
.Cells(1, 1).Value = wrdTbl.Cell(i, j).Range.Text
End With
Next
Next
oXLwb.Close savechanges:=True
Set oXLws = Nothing
Set oXLwb = Nothing
oXLApp.Quit
Set oXLApp = Nothing
MsgBox "DONE"
End Sub
PS:我不明白的另一件事是,为什么我将 table 复制到 Excel 时,每个单元格中都会出现一个奇怪的标记。我喜欢那个“[]”,我不明白为什么它会出现,因为它不在单词 table 中。抱歉照片质量不好,我不得不用我的 phone 来做。
例如,您可以替换:
Set wrdTbl = Selection.Tables(1)
与:
Set wrdTbl = ActiveDocument.Tables(InputBox("Table # to copy? There are " & ActiveDocument.Tables.Count & " tables to choose from."))
要从 Word 中删除单元格结束标记,您可以使用:
.Cells(1, 1).Value = Split(wrdTbl.Cell(i, j).Range.Text, vbCr)(0)
我有一个包含 7 个 table 的 word 文件,我想将其中一个复制到一个 excel 文件中。但是我想每次 运行 选择要复制的 table 宏,因为我会有不同的 word 文件,其中包含不同数量的 table 和不同的 table 复制。
现在我有这段代码可以复制你当时选择的 table 这个词:
Dim wrdTbl As Table
Dim RowCount As Long, ColCount As Long, i As Long, j As Long
Dim oXLApp As Object, oXLwb As Object, oXLws As Object
Set wrdTbl = Selection.Tables(1)
ColCount = wrdTbl.Columns.Count
RowCount = wrdTbl.Rows.Count
Set oXLApp = CreateObject("Excel.Application")
oXLApp.Visible = False
Set oXLwb = oXLApp.Workbooks.Open("C:\Sample.xlsx")
Set oXLws = oXLwb.Sheets(1)
For i = 1 To RowCount
For j = 1 To ColCount
Debug.Print wrdTbl.Cell(i, j).Range.Text
With oXLws
.Cells(1, 1).Value = wrdTbl.Cell(i, j).Range.Text
End With
Next
Next
oXLwb.Close savechanges:=True
Set oXLws = Nothing
Set oXLwb = Nothing
oXLApp.Quit
Set oXLApp = Nothing
MsgBox "DONE"
End Sub
PS:我不明白的另一件事是,为什么我将 table 复制到 Excel 时,每个单元格中都会出现一个奇怪的标记。我喜欢那个“[]”,我不明白为什么它会出现,因为它不在单词 table 中。抱歉照片质量不好,我不得不用我的 phone 来做。
例如,您可以替换:
Set wrdTbl = Selection.Tables(1)
与:
Set wrdTbl = ActiveDocument.Tables(InputBox("Table # to copy? There are " & ActiveDocument.Tables.Count & " tables to choose from."))
要从 Word 中删除单元格结束标记,您可以使用:
.Cells(1, 1).Value = Split(wrdTbl.Cell(i, j).Range.Text, vbCr)(0)