在VBA中粘贴Excel图表

时间:2018-07-27 10:55:26

标签: excel vba excel-vba

我想使用VBA的“选择性粘贴”命令中提供的其他选项将Excel图表粘贴到PowerPoint幻灯片中。但是,我没有任何选择可以通过将图表中的嵌入数据粘贴到图表中'

我使用了ppPasteOLEObject,但是它嵌入了整个excel工作簿,因此PowerPoint文件的大小会增加。

我正在使用的代码:-

Sub excltoppt()

Dim ppalApp As PowerPoint.Application
Dim ppalPres As PowerPoint.Presentation
Dim ppalSlide As PowerPoint.Slide

Set ppalApp = New PowerPoint.Application

ppalApp.Visible = True
ppalApp.Activate

Set ppalPres = ppalApp.Presentations.Open("C:\Desktop\Template.pptx")

Set ppalSlide = ppalPres.Slides(6)

'here it select data from specific excel sheet #6    
Sheets("S06").Select
    Worksheets(1).ChartObjects(1).Copy

'here it paste at the selected specific slide #6
ppalSlide.Shapes.PasteSpecial DataType:=ppPasteText
'ole object option that I have tried is:-
'ppSlide.Shapes.PasteSpecial ppPasteOLEObject


End Sub

我也尝试使用此其他选项,但它也不起作用:-

  PowerPointApp.CommandBars.ExecuteMso ("PasteExcelChartDestinationTheme")

请注意,我在系统中使用Excel 2016。 请在这方面帮助我。

关于, 阿罗克

2 个答案:

答案 0 :(得分:0)

以下内容对我有用,它将图表粘贴到您的幻灯片中,只是不确定如何使它具有嵌入式数据:

Sub excltoppt()

Dim ppalApp As PowerPoint.Application
Dim ppalPres As PowerPoint.Presentation
Dim ppalSlide As PowerPoint.Slide

    Set ppalApp = New PowerPoint.Application

    ppalApp.Visible = True

    Set ppalPres = ppalApp.Presentations.Open("C:\Desktop\Template.pptx")

    Set ppalSlide = ppalPres.Slides(6)

    Sheets("Sheet1").ChartObjects(1).Copy

    ppalSlide.Shapes.Paste

End Sub

答案 1 :(得分:0)

尝试

Sheets("S06").Select
Worksheets("S06").ChartObjects(1).Select
ActiveChart.ChartArea.Copy
ppaslide.select
ppalApp.ActiveWindow.View.Paste

For x = 1 To ppalSlide.Shapes.Count
    If ppalSlide.Shapes(x).HasChart Then
        ppalSlide.Shapes(x).LinkFormat.BreakLink
    End If
Next