【发布时间】:2018-09-13 18:03:01
【问题描述】:
在我的 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 部分仅用于放置wdFloatOverText 或wdInLine,它们都不能解决此问题。
我对 VBA 非常陌生,并且已经没有想法了。我仍在尝试找到一种格式化它的方法,也许使用某种WITH 语句。但是,我想在继续 google-foo 并从 Youtube 学习 VBA 的同时尝试寻求帮助。
使用PasteAndFormat Type:=wdChartPicture 将图表链接到excel。所以这没有用。
【问题讨论】: