0
的一个PowerPoint阵列下面的命令删除一次的从一个演示幻灯片的数组:特定的幻灯片添加到幻灯片
ActivePresentation.Slides.Range(Array(1, 5, 69, 70.....)).delete
但我怎么添加特定的幻灯片的数组(如果该幻灯片相遇一些条件)在进行删除之前?
的一个PowerPoint阵列下面的命令删除一次的从一个演示幻灯片的数组:特定的幻灯片添加到幻灯片
ActivePresentation.Slides.Range(Array(1, 5, 69, 70.....)).delete
但我怎么添加特定的幻灯片的数组(如果该幻灯片相遇一些条件)在进行删除之前?
According to MSDN,发送到范围功能的参数可以是一个整数指数,一个字符串幻灯片名称,或整数和字符串的数组。如果您希望使用SlideRange执行您删除,你可以先定义数组,添加任何幻灯片你想通过名称或索引号,然后装入SlideRange并执行删除:
Public Sub Test()
Dim arrSlides() As Variant
arrSlides = Array(1, 2, 69, 70)
'Put this next part in a loop to continue adding more slides
ReDim Preserve arrSlides(UBound(arrSlides) + 1)
arrSlides(4) = 83 ' or "Name Of Slide"
Application.ActivePresentation.Slides.Range(arrSlides).Delete
End Sub
另一种解决方案
如果你的目标是删除符合特定条件的幻灯片,它可能更容易只是通过他们所有的迭代,并删除它们。通过这种方式,您可以更自由地测试每个幻灯片的特定属性。
Public Sub Test()
Dim tempSlide As Slide
For Each tempSlide In Application.ActivePresentation.Slides
If tempSlide.Shapes.Count > 3 Then 'Or whatever your condition actually is
tempSlide.Delete
End If
Next
End Sub
两种解决方案都perfect.Thanks – user1236600
如果解决方案是为你工作,随时为[接受我的答案](http://meta.stackexchange.com/a/5235);) – Blackhawk