VBA将Excel图表复制到Word作为图片更改图表大小

Raf*_*ael 4 excel charts vba ms-word copy-paste

我想创建一个宏,从 Excel 复制图表并将它们作为图片粘贴到 Word 中(最好是增强型元文件)。

我设置了一个带有表格的 Word 模板文档,该表格在应插入图片的特定单元格中包含书签。

然而,使用我当前的代码,插入的图像太大了,弄乱了整个表格。我尝试了不同的图片选项(增强型图元文件、png 等),但它们的结果都相同。

当我尝试在表格中手动复制图表时PasteSpecial,它会保持原始大小,这正是我想要的。

我必须在我的代码中更改什么才能获得它?

Sub CopyCharts2Word()

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("Boomark1").Select  

 'copy chart from Excel        
 Sheets("Sheet1").ChartObjects("ChartA").chart.ChartArea.Copy        

 'insert chart to Bookmark in template doc
 wd.Selection.PasteSpecial Link:=False, _
 DataType:=wdPasteMetafilePicture, _
 Placement:=wdInLine, _
 DisplayAsIcon:=False

 End Sub
Run Code Online (Sandbox Code Playgroud)

Raf*_*ael 5

是的,就是这样:

我换了

'insert chart to Bookmark in template doc
wd.Selection.PasteSpecial Link:=False, _
DataType:=wdPasteMetafilePicture, _
Placement:=wdInLine, _
DisplayAsIcon:=False
Run Code Online (Sandbox Code Playgroud)

wd.Selection.PasteSpecial Link:=False, _
DataType:=wdPasteMetafilePicture, _
Placement:=wdTight, _    
DisplayAsIcon:=False
Run Code Online (Sandbox Code Playgroud)

这样,图表的大小与 Excel 工作表中的大小保持一致!