[英]How to copy/paste tables from Excel to a Word document
我想将表格从 Excel 工作表复制/粘贴到 .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
每当您编写代码来自动化 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.