如何将 copy/paste 表格从 Excel 转换为 Word 文档

How to copy/paste tables from Excel to a Word document

我想 copy/paste 从 Excel sheet 到 .docx 的表格。我有一个词 #tableauxvdd,我想用我的表替换它。

所以我写了这段代码

     With word_fichier.Range
         With .Find
             .ClearFormatting
             .Replacement.ClearFormatting
             .Text = "#tableauxvdd"
             .Replacement.Text = "#tableauxvdd"
             .Forward = True
             .Wrap = wdFindStop
             .Format = False
             .MatchWildcards = True
             .Execute Replace:=wdReplaceNone
         End With
             If .Find.Found = True Then
                For i = 1 To nombre_de_vdd
                    Set tblRangeVdd = ThisWorkbook.Worksheets("Info vdd " & i).Range("A1:C6")
                    tblRangeVdd.Copy
                    .PasteExcelTable _
                        LinkedToExcel:=False, _
                        WordFormatting:=False, _
                        RTF:=False
                Next
             End If
     End With

但是它不起作用。这是我需要的表格 copy/paste

这是结果

这就是我需要的:

每当您编写代码来自动执行 Word 时,您都需要考虑如果您在 UI 中执行任务,您将采取哪些步骤。

在 Word 文档中,表格总是以段落分隔,因此您的代码也需要这样做。

例如:

If .Find.Found = True Then
    For i = 1 To nombre_de_vdd
        Set tblRangeVdd = ThisWorkbook.Worksheets("Info vdd " & i).Range("A1:C6")
        tblRangeVdd.Copy
        .PasteExcelTable _
            LinkedToExcel:=False, _
            WordFormatting:=False, _
            RTF:=False
        .InsertParagraphAfter
    Next
End If

您还需要以相反的顺序添加表格,例如:

If .Find.Found = True Then
    Dim tblRangeVdd As word.Range
    Set tblRangeVdd = .Duplicate
    With tblRangeVdd
        .Collapse wdCollapseEnd
        For i = nombre_de_vdd To 1 Step -1
            ThisWorkbook.Worksheets("Info vdd " & i).Range("A1:C6").Copy
            .PasteExcelTable _
                LinkedToExcel:=False, _
                WordFormatting:=False, _
                RTF:=False
            .InsertParagraphAfter
        Next
    End With
End If