将Excel图表复制/粘贴到PowerPoint错误



我正试图在Excel工作簿中获取60个图表,并将它们粘贴到PowerPoint中。在我们转换为Office 365之前,它一直运行良好。现在我得到一个错误

指定的数据类型不可用

这是代码:

copy_chart "318Pivot", "cht404_318", 3
Public Function copy_chart(sheet, chart, slide)
Dim oshp As Shape
Dim PPApp As Object
Dim PPPres As Object
Dim PPSlide As Object
Dim PPShape As Object
Set PPApp = GetObject(, "Powerpoint.Application")
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewSlide
PPApp.ActiveWindow.View.GotoSlide (slide)
Worksheets(sheet).Activate
ActiveSheet.ChartObjects(chart).chart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
Set PPSlide = PPPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
' paste and select the chart picture
PPSlide.Shapes.PasteSpecial DataType:=ppPasteJPG  '**This is where it errors out**
'With PPShape
For j = 1 To PPSlide.Shapes.Count
With PPSlide.Shapes(j)
If .Type = msoPicture Then
.LockAspectRatio = False
.Height = 5# * 72
.Width = 10# * 72
.Left = 0# * 72
.Top = 1.5 * 72
End If
End With
Next j
DoEvents
' Clean up
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing
Set PPShape = Nothing
End Function

以前效果很好。我尝试过CCD_ 1和CCD_;30毫巴。以前它工作的时候是3 MB。

有人知道为什么我突然不能再使用ppPasteJPG了吗?以及如何更正代码?

如果ytou不使用早期绑定,Excel VBA将不知道ppPasteJPG的含义。但是ppPasteJPG只是一个值为5的命名常量。所以更换

PPSlide.Shapes.PasteSpecial DataType:=ppPasteJPG

带有

PPSlide.Shapes.PasteSpecial DataType:=5

开始工作了。发现由于某种原因,复制行实际上并没有复制图表。不确定为什么复制ChartArea有效,而复制Chart无效。

'ActiveSheet.ChartObjects(chart).chart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
Worksheets(sheet).Activate
ActiveSheet.ChartObjects(chart).Activate
ActiveChart.ChartArea.Copy
' test to see if the clipboard is empty
Set PPSlide = PPPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
' paste and select the chart picture
PPSlide.Shapes.PasteSpecial DataType:=ppPasteJPG

最新更新