【问题标题】:Choose a table to copy from a Word file into an Excel file选择要从 Word 文件复制到 Excel 文件的表格
【发布时间】:2020-06-02 15:24:33
【问题描述】:

我有一个包含 7 个表格的 word 文件,我想将其中一个复制到一个 excel 文件中。但我想在每次运行宏时选择要复制哪个表,因为我将有不同的 word 文件,其中包含不同数量的表和要复制的不同表。

现在我有这段代码可以复制您当时选择的单词表:

    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:我不明白的另一件事是,为什么当我将表格复制到 Excel 时,表格的每个单元格中都会出现一个奇怪的标记。我得到这样的“[]”,我不明白它为什么会出现,因为它不在单词表中。对不起,照片质量不好,我不得不用我的手机来做。

【问题讨论】:

    标签: excel vba ms-word copy-paste word-table


    【解决方案1】:

    例如,您可以替换:

    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)

    【讨论】:

    • 非常感谢,这非常适合选择表格,我唯一不明白的是为什么当我将表格复制到 excel 时它们出现一个奇怪的标记,我会发布一个上图。
    • “奇怪标记”是 Word 中的单元格结束标记。请参阅我上面的答案中的更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 2021-03-14
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多