簡體   English   中英

如何將 Excel 圖表復制到 PowerPoint 幻燈片中?

[英]How do I copy an Excel chart into a PowerPoint slide?

如何將 Excel 圖表復制到 PowerPoint 幻燈片中?

這是我到目前為止的代碼。

'There is a bunch of other stuff defined.
' Just showing what I think are relevant definitions
Dim pptApp As PowerPoint.Application
Dim pptPres As PowerPoint.Presentation
Dim shp As PowerPoint.Shape
Dim sld As PowerPoint.Slide
Dim xlChrt As Excel.ChartObject

Set pptApp = CreateObject("PowerPoint.Application")

'This opens up my PowerPoint file
Set ppPres = pptApp.Presentations.Open(myPath & pptFile)

'This activates the worksheet where my chart is
Workbooks(wb2).Sheets("Sheet 1").Activate

    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.ChartArea.Copy

'I think that my copying works because after I run the module,
' I have the chart in my clipboard. 

'This takes me to slide 2 of my PowerPoint. 
Set sld = pptPres.Slides(2) 

sld.Shapes.Paste 'But nothing pastes to the slide

我正在復制圖表,因為它在模塊運行后位於我的剪貼板中。

我成功地在代碼中引用了 PowerPoint 幻燈片,我在幻燈片 2 上編輯了文本框。

我相信如果您更正 set pptPres 語句,您的代碼應該可以工作。 此示例是基於您的代碼的簡化示例:

Option Explicit

Public Sub CopyChart()

    Const myPath = "c:\temp\"
    Const pptFile = "test.pptx"

    Dim pptApp As New PowerPoint.Application
    Dim pptPres As PowerPoint.Presentation
    Dim sld As PowerPoint.Slide

    ' Open the PowerPoint and reference the slide
    Set pptPres = pptApp.Presentations.Open(myPath & pptFile)
    Set sld = pptPres.Slides(2)

    ' Copy the Chart
    ActiveWorkbook.Sheets("Sheet 1").ChartObjects("Chart 1").Copy

    ' Paste it into the PowerPoint
    sld.Shapes.Paste

End Sub

結果……您可以看到粘貼到幻燈片 2 上的圖表:

屏幕復制

更新的答案

圖表的功能不如嵌入式圖表: https://docs.microsoft.com/en-us/office/vba/api/excel.chart(object)

這是一個選項,它是上述適用於圖表的小變體:

Option Explicit

Public Sub CopyChartSheet()

    Const myPath = "c:\temp\"
    Const pptFile = "test.pptx"

    Dim pptApp As New PowerPoint.Application
    Dim pptPres As PowerPoint.Presentation
    Dim myChart As Excel.Chart

    Dim sld As PowerPoint.Slide

    ' Open the PowerPoint and reference the slide
    Set pptPres = pptApp.Presentations.Open(myPath & pptFile)
    Set sld = pptPres.Slides(2)

    ' Copy the Chart
    Set myChart = ActiveWorkbook.Charts("Chart 1")
    myChart.CopyPicture

    ' Paste it into the PowerPoint
    sld.Shapes.Paste

End Sub

屏幕2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM