Скопируйте диаграмму Excel в конец документа Word

Я пытаюсь скопировать текст и диаграммы из Excel в Word. Проблема в том, что диаграмма всегда отображается поверх документа Word. Как добавить диаграмму в конец документа Word? Вот мой код:

Sub Test()

Dim tbl As Excel.Range
Dim WordApp As Word.Application
Dim myDoc As Word.Document
Dim WordTable As Word.Table


Set WordApp = GetObject(class:="Word.Application")
WordApp.Visible = True
WordApp.Activate

'Create a New Document
Set myDoc = WordApp.Documents.Add

'Copy Excel Text in cell A1 to A3
Worksheets("Rapportage").Select
Range("A1:A3").Select
Selection.Copy

'Paste Excel Text into MS Word
myDoc.Paragraphs(1).Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False
     
'Copy Excel Chart
Worksheets("Rapportage").Select
Range("A4").Select
Selection.Copy

'Paste Chart into MS Word
myDoc.Paragraphs(1).Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False

End Sub

person Michel Verberg    schedule 21.10.2020    source источник
comment
Я полагаю, что вместо myDoc.Paragraphs(1).Range.PasteExcelTable синтаксис должен быть примерно таким: myDoc.Paragraphs(myDoc.Paragraphs.Count+1).Range.PasteExcelTable   -  person Marcucciboy2    schedule 22.10.2020


Ответы (2)


Заменять

'Paste Excel Text into MS Word
myDoc.Paragraphs(1).Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False

с участием

'Paste Excel Text into MS Word
'add a paragraph at the end of the document and paste into it
with myDoc.Content
    .InsertParagraphAfter
    .Paragraphs.Last.Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False
End With
person Timothy Rylatt    schedule 22.10.2020

Это происходит потому, что в обеих командах вставки вы вставляете абзацы (1). Вместо этого вы можете просто вставить с помощью Selection, чтобы он вставлял одну вещь за другой в том порядке, в котором вы хотите (он вставляется там, где находится курсор):

'Paste Excel Text into MS Word
     WordApp.Selection.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False

И в конце концов:

'Paste Chart into MS Word
     WordApp.Selection.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False
person Ivan    schedule 21.10.2020
comment
Если вам действительно нужно переместить курсор в конец документа, вы можете использовать: WordApp.Selection.EndKey Unit: = 6 Или, чтобы перейти к началу документа: WordApp.Selection.HomeKey Unit: = 6 - person Ivan; 22.10.2020