【发布时间】:2018-07-07 17:18:19
【问题描述】:
我正在尝试将多个图表从 excel 中的工作表复制并粘贴到 powerpoint 中的幻灯片中。我有:
Public Sub CreateManagmentPres()
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim ppTextbox As PowerPoint.Shape
Set PPApp = New PowerPoint.Application
PPApp.Visible = True
PPApp.Activate
Set PPPres = PPApp.Presentations.Add
'Summary of Assumptions (Cont'd)
Set PPSlide = PPPres.Slides.Add(6, ppLayoutTitleOnly)
PPSlide.Select
PPSlide.Shapes(1).TextFrame.TextRange.Text = "Summary of Assumptions (Cont'd)"
ActiveWorkbook.Sheets("Case Summary").ChartObjects("Chart Rev").Copy
With PPPres.Slides(6).Shapes.PasteSpecial(DataType:=ppPasteOLEObject, _
Link:=msoTrue)
End With
PPSlide.Shapes(2).Top = 70
PPSlide.Shapes(2).Left = 11
ActiveWorkbook.Sheets("Case Summary").ChartObjects("Chart Lev").Copy
With PPPres.Slides(6).Shapes.PasteSpecial(DataType:=ppPasteOLEObject, _
Link:=msoTrue)
End With
PPSlide.Shapes(3).Top = 70
PPSlide.Shapes(3).Left = 370
这将返回“形状(未知成员)。无效请求。指定的数据类型不可用。
与With PPPres.Slides(6).Shapes.PasteSpecial(DataType:=ppPasteOLEObject, _
Link:=msoTrue)相关
我看到一篇相关的帖子将我的代码更改为:
Set PPSlide = PPPres.Slides.Add(6, ppLayoutTitleOnly)
PPSlide.Select
PPSlide.Shapes(1).TextFrame.TextRange.Text = "Summary of Assumptions (Cont'd)"
ActiveWorkbook.Sheets("Case Summary").ChartObjects("Chart Rev").ChartArea.Copy
With PPPres.Slides(6).Shapes.PasteSpecial(DataType:=ppPasteOLEObject, Link:=msoTrue)
'~~> Rest of your code here
End With
PPSlide.Shapes(2).Top = 70
PPSlide.Shapes(2).Left = 11
现在我得到“对象不支持此属性或方法”:
ActiveWorkbook.Sheets("Case Summary").ChartObjects("Chart Rev").ChartArea.Copy
【问题讨论】:
-
你是在excel中运行这段代码吗?
-
我为此奋斗了一段时间。当我终于开始工作时,我发现将图表粘贴到 PPT 中,由于模板不同,它们最终会出现不同的颜色和格式。我最终制作了一个 PPT 模板,其中我将图表 链接 到 Excel 文件。更新 PPT 中的链接可以获得更新后的 Excel 数据。
-
是的,我在 excel 中运行代码。它似乎工作了一段时间,然后我开始收到错误消息。
-
ActiveWorkbook.Sheets("Case Summary").ChartObjects("Chart Rev").Chart.ChartArea.CopyChartObject只是Chart对象的容器,ChartArea是Chart的属性 -
蒂姆,感谢您的回复!它现在似乎运行正常。