2013-12-17 34 views
3

行中升級到2013年「Object Required」後出現錯誤我的代碼在2007年工作。2013年,錯誤引發爲「Object Required」 line在「activeSlide.Shapes.PasteSpecial(DataType:= ppPasteMetafilePicture).Select」

activeSlide.Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select 

如何修改現有的PPT?

Sub CreatePowerPoint() 

'Add a reference to the Microsoft PowerPoint Library by: 
'1. Go to Tools in the VBA menu 
'2. Click on Reference 
'3. Scroll down to Microsoft PowerPoint X.0 Object Library, check the box, and press Okay 

'First we declare the variables we will be using 
    Dim newPowerPoint As PowerPoint.Application 
    Dim activeSlide As PowerPoint.Slide 
    Dim cht As Excel.ChartObject 

'Look for existing instance 
    On Error Resume Next 
    Set newPowerPoint = GetObject(, "PowerPoint.Application") 
    On Error GoTo 0 

'Let's create a new PowerPoint 
    If newPowerPoint Is Nothing Then 
     Set newPowerPoint = New PowerPoint.Application 
    End If 
'Make a presentation in PowerPoint 
    If newPowerPoint.Presentations.Count = 0 Then 
     newPowerPoint.Presentations.Add 
    End If 

'Show the PowerPoint 
    newPowerPoint.Visible = True 

'Loop through each chart in the Excel worksheet and paste them into the PowerPoint 
    For Each cht In ActiveSheet.ChartObjects 

    'Add a new slide where we will paste the chart 
     newPowerPoint.ActivePresentation.Slides.Add newPowerPoint.ActivePresentation.Slides.Count + 1, ppLayoutText 
     newPowerPoint.ActiveWindow.View.GotoSlide newPowerPoint.ActivePresentation.Slides.Count 
     Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.Count) 

    'Copy the chart and paste it into the PowerPoint as a Metafile Picture 
     cht.Select 
     ActiveChart.ChartArea.Copy 
     activeSlide.Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select 


    'Adjust the positioning of the Chart on Powerpoint Slide 
     newPowerPoint.ActiveWindow.Selection.ShapeRange.Left = 15 
     newPowerPoint.ActiveWindow.Selection.ShapeRange.Top = 125 

     activeSlide.Shapes(2).Width = 200 
     activeSlide.Shapes(2).Left = 505 

    Next 

AppActivate ("Microsoft PowerPoint") 
Set activeSlide = Nothing 
Set newPowerPoint = Nothing 

End Sub 

回答

0

我甚至不知道你爲什麼會需要選擇你有粘貼的圖片,但如果你要保持它,我想補充一個新的變量Dim pptShape As PowerPoint.Shape,然後將其替換activeSlide.Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select

Set pptShape = activeSlide.Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture) 
pptShape.Select 

希望這會有所幫助, TheSilkCode