我想创建一个宏,从 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
是的,就是这样:
我更换了
'insert chart to Bookmark in template doc
wd.Selection.PasteSpecial Link:=False, _
DataType:=wdPasteMetafilePicture, _
Placement:=wdInLine, _
DisplayAsIcon:=False
with
wd.Selection.PasteSpecial Link:=False, _
DataType:=wdPasteMetafilePicture, _
Placement:=wdTight, _
DisplayAsIcon:=False
这样,图表的大小就保持与 Excel 工作表中的大小相同!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)