我正在通过 Excel 执行代码,我希望它删除 PPT 中除幻灯片 1、2、3 和 17 之外的所有幻灯片。 我似乎无法让它工作。
这里有一个删除演示文稿中所有幻灯片的片段,如何实现例外?
For i = ppApp.ActivePresentation.Slides.Count To 2 Step -1
ppApp.ActivePresentation.Slides(i).Delete
Next
试试这个:
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
您想要保留的纸张即可。
最简单的方法是将幻灯片 17 移动到位置 4,然后执行以下操作:
Do While ppApp.ActivePresentation.Slides.Count > 4
ppApp.ActivePresentation.Slides(5).Delete
Loop
希望有帮助
试一试:
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,因此您无需进行测试以确保不会删除它们。
注意:在测试删除内容的代码时,始终确保您有要删除的内容的备份副本来自,以防万一...
比赛有什么问题吗?
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