选择 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)