2014-11-18 4 views
0

Я пытаюсь скопировать схемы вставки из Excel в PPT, с диаграммами, встроенными в PPT. Я использую следующий код:Как скопировать графики из Excel и вставить его в PPT?

Sub ChartToPresentation() 
    ' Uses Early Binding to the PowerPoint Object Model 
    ' Set a VBE reference to Microsoft PowerPoint Object Library 
    Dim PPApp As PowerPoint.Application 
    Dim PPSlide As PowerPoint.Slide 
    Dim PPPres As PowerPoint.Presentation 

    ' Reference existing instance of PowerPoint 
    Set PPApp = GetObject(, "Powerpoint.Application") 

    ' Reference active presentation 
    Set PPPres = PPApp.ActivePresentation 
    PPApp.ActiveWindow.ViewType = ppViewSlide 

    'Copy "Chart 2" to from "Sheet3" to Slide # 10 
    ' Copy "Chart 1" on "Sheet3" as a picture 
    ActiveWorkbook.Sheets("Sheet3").ChartObjects("Chart 2").Copy 

    ' Paste chart to Slide # 10 
    With PPPres.Slides(10).Shapes.PasteSpecial(DataType:=ppPasteOLEObject, _ 
     Link:=msoTrue) 
     ' Align pasted chart 
     .Align msoAlignCenters, True 
     .Align msoAlignMiddles, True 
    End With 

    ' Clean up 
    Set PPSlide = Nothing 
    Set PPPres = Nothing 
    Set PPApp = Nothing 

    AppActivate ("Microsoft PowerPoint") 
End Sub 

Когда я запускаю это, я получаю эту ошибку: Run time error. Shapes (unknown member):Invalid request. The specific data type is unavailable

На линии: With PPPres.Slides(10).Shapes.PasteSpecial(DataType:=ppPasteOLEObject, Link:=msoTrue)

Я не знаю, почему я получаю эту ошибку. Указанный тип данных является одним из типов данных для PasteSpecial. Как я могу обойти это и вставить диаграммы в виде встроенных диаграмм.

Заранее благодарен! :)

ответ

1

Что вы пытаетесь скопировать это на самом деле не Chart но Chart Area из Chart Object.
Так попробовать что-то вроде:

ActiveWorkbook.Sheets("Sheet3").ChartObjects("Chart 2").ChartArea.Copy 
With PPPres.Slides(10).Shapes.PasteSpecial(DataType:=ppPasteOLEObject, Link:=msoTrue) 
    '~~> Rest of your code here 
End With 

Является ли это то, что вы пытаетесь? НТН.

Смежные вопросы