В моем документе Excel у меня есть диаграмма, которую я хочу скопировать и вставить в документ MS-Word.Я хочу избегать связывания данных, встраивания рабочих книг и изменения размера (таблица Excel отформатирована в соответствии с моим желаемым размером).Поэтому я нашел / нашел следующий код, который почти работает:
Sub PasteChart()
Dim wd As Object
Dim ObjDoc As Object
Dim FilePath As String
Dim FileName As String
FilePath = "C:\Users\name\Desktop"
FileName = "Template.docx"
'check if template document is open in Word, otherwise open it
On Error Resume Next
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
Set wd = CreateObject("Word.Application")
Set ObjDoc = wd.Documents.Open(FilePath & "\" & FileName)
Else
On Error GoTo notOpen
Set ObjDoc = wd.Documents(FileName)
GoTo OpenAlready
notOpen:
Set ObjDoc = wd.Documents.Open(FilePath & "\" & FileName)
End If
OpenAlready:
On Error GoTo 0
'find Bookmark in template doc
wd.Visible = True
ObjDoc.Bookmarks("LPPU").Select
'copy chart from Excel
Sheets("Group Level Graphs").ChartObjects("Chart 1").Chart.ChartArea.Copy
'insert chart to Bookmark in template doc
wd.Selection.PasteSpecial Link:=False, DataType:=14, Placement:=0, _
DisplayAsIcon:=False
End Sub
Единственная проблема заключается в том, что изображение вставляется как «в соответствии с текстом», но мне нужно, чтобы оно было «Квадрат с переносом текста».».Я не могу заставить Word или Excel записать изменение изображения на «Квадрат с переносом текста».
Часть PasteSpecial
делает только 1007 * или wdInLine
для размещения, и ни одна из них не решает эту проблему,
Я очень новичок в VBA и у меня кончились идеи.Я все еще пытаюсь найти способ отформатировать его, возможно, используя какое-то выражение WITH
.Однако я думал, что попытаюсь обратиться за помощью, продолжая google-foo и изучая VBA на Youtube.
Использование PasteAndFormat Type:=wdChartPicture
связывает диаграмму с превосходством.Так что это не сработало.