2013-10-30 142 views
0

的一个PowerPoint阵列下面的命令删除一次的从一个演示幻灯片的数组:特定的幻灯片添加到幻灯片

ActivePresentation.Slides.Range(Array(1, 5, 69, 70.....)).delete 

但我怎么添加特定的幻灯片的数组(如果该幻灯片相遇一些条件)在进行删除之前?

回答

2

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 
+0

两种解决方案都perfect.Thanks – user1236600

+0

如果解决方案是为你工作,随时为[接受我的答案](http://meta.stackexchange.com/a/5235);) – Blackhawk