2016-10-02 77 views
0

我想第一个幻灯片从PowerPoint中复制并在末尾插入,但我得到的ActiveX不能上线的ActiveX不能创建对象powerpont VBA

ActivePresentation.Slides(1).Copy 

创建对象这是我的完整的代码和我已经添加以及

Option Explicit 

Dim myFile, Fileselected As String, Path As String, objPPT As Object 
Dim activeSlide As PowerPoint.Slide 

Sub Generate_PPTs() 

Application.ScreenUpdating = False 

Set myFile = Application.FileDialog(msoFileDialogOpen) 
With myFile 
    .Title = "Choose Template PPT File." 
    .AllowMultiSelect = False 
If .Show <> -1 Then 
    Exit Sub 
End If 
    Fileselected = .SelectedItems(1) 
End With 
Path = Fileselected 

Set objPPT = CreateObject("PowerPoint.Application") 
Set objPPT = objPPT.Presentations.Open(Path) 

Debug.Print objPPT.Name 

ActivePresentation.Slides(1).Copy 
ActivePresentation.Slides.Paste Index:=objPPT.Slides.Count + 1 

Set activeSlide = objPPT.Slides(objPPT.Slides.Count) 

Application.ScreenUpdating = True 
Set objPPT = Nothing 

End Sub 
+0

您是从PowerPoint还是Excel运行此代码? –

+0

从Excel这就是为什么我添加对库的引用 – newguy

回答

1

引用的Microsoft PowerPoint库尝试下面编辑的代码,我有ppApp As PowerPoint.ApplicationDim ppPres As PowerPoint.Presentation

Option Explicit 

Dim myFile, Fileselected As String, Path As String, objPPT As Object 
Dim ppApp As PowerPoint.Application 
Dim ppPres As PowerPoint.Presentation 

Dim activeSlide As PowerPoint.Slide 

Sub Generate_PPTs() 

Application.ScreenUpdating = False 

Set myFile = Application.FileDialog(msoFileDialogOpen) 
With myFile 
    .Title = "Choose Template PPT File." 
    .AllowMultiSelect = False 
If .Show <> -1 Then 
    Exit Sub 
End If 
    Fileselected = .SelectedItems(1) 
End With 
Path = Fileselected 

Dim i As Integer 

Set ppApp = New PowerPoint.Application 
i = 1 

ppApp.Presentations.Open Filename:=Path ' 'PowerPointFile = "C:\Test.pptx" 
Set ppPres = ppApp.Presentations.Item(i) 

' for debug 
Debug.Print ppPres.Name 

ppPres.Slides(1).Copy 
ppPres.Slides.Paste Index:=ppPres.Slides.Count + 1 

Set activeSlide = ppPres.Slides(ppPres.Slides.Count) 

Application.ScreenUpdating = True 
Set ppPres = Nothing 
Set ppApp = Nothing 

End Sub 
+0

非常感谢你.. – newguy

相关问题