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

问题描述 投票:0回答:4

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

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

    For i = ppApp.ActivePresentation.Slides.Count To 2 Step -1
             ppApp.ActivePresentation.Slides(i).Delete
    Next
excel vba powerpoint
4个回答
1
投票

试试这个:

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
您想要保留的纸张即可。


1
投票

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

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

希望有帮助


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,因此您无需进行测试以确保不会删除它们。

注意:在测试删除内容的代码时,始终确保您有要删除的内容的备份副本来自,以防万一...


0
投票

比赛有什么问题吗?

Dim slide As slide
    For Each slide In newPres.Slides
        If IsError(Application.Match(slide.slideIndex, slideGroups(i)(1), 0)) Then
            slide.Delete
        End If
    Next slide
© www.soinside.com 2019 - 2024. All rights reserved.