VBA:删除除特定幻灯片以外的所有幻灯片(在PPT中)

时间:2018-09-28 11:34:33

标签: excel vba powerpoint

我正在通过Excel执行代码,我希望它删除PPT中除幻灯片1、2、3和17之外的所有幻灯片。 我似乎无法使其正常工作。

这是一个删除演示文稿中所有幻灯片的片段,如何实现例外?

    For i = ppApp.ActivePresentation.Slides.Count To 2 Step -1
             ppApp.ActivePresentation.Slides(i).Delete
    Next

3 个答案:

答案 0 :(得分:0)

简单的做法是将幻灯片17移动到位置4,然后执行以下操作:

Do While ppApp.ActivePresentation.Slides.Count > 4
        ppApp.ActivePresentation.Slides(5).Delete
    Loop

希望有帮助

答案 1 :(得分:0)

试一下:

For i = ppApp.ActivePresentation.Slides.Count To 4 Step -1
  If I <> 17 then
    ppApp.ActivePresentation.Slides(i).Delete
  End If
Next

这将删除除那4张幻灯片以外的所有幻灯片,无论您开始时有多少张幻灯片。通过在幻灯片#4处停止循环,您甚至都不会考虑幻灯片1、2或3,因此不必进行测试以确保不删除它们。

注意::在测试可删除内容的代码时,总是确保您拥有要从中删除 的备份副本,万一...

答案 2 :(得分:0)

尝试一下:

Dim arrSheetsToKeep As Variant
arrSheetsToKeep = Array(1, 2, 3, 17)    

For i = ppApp.ActivePresentation.Slides.Count To 1 Step -1

    If IsError(Application.Match(i, arrSheetsToKeep, False)) Then

             ppApp.ActivePresentation.Slides(i).Delete

    End If        
Next

只需在arrSheetsToKeep中填写您要保留的纸张即可。