我花了几个小时试图缩小错误发生的位置,并且它似乎一直与这张幻灯片相关联的时间最长。但后来,我碰巧在另一张幻灯片上遇到了同样的错误。共同点是他们在幻灯片上都有不寻常的动画。具体来说,在两张幻灯片上,我有一组形状,该组使用“线条”动画制作动画,该动画将一组形状从一个点移动到另一个点。
当我从这些幻灯片中删除动画时,oSld.Copy 和使用 CTRL+C 时都不再出现错误。
我的解决方法(到目前为止有效)是在将源幻灯片复制到演示文稿末尾之后,我添加了代码以从源幻灯片中删除动画。幸运的是,复制错误似乎只发生在尝试复制具有复杂动画的第二张幻灯片时,而不是在复制具有复杂动画的第一张幻灯片之后。因此,通过在复制幻灯片后删除复杂动画,动画在演示结束时被正确复制到幻灯片,但显然从源幻灯片中删除动画可以防止复制下一张复杂动画幻灯片时出现问题。
我修改了 PowerPoint Alchemy 的 John Wilson 的代码以删除动画,如下所示:
Sub DeleteAnimations()
Dim i As Integer
Dim t As Integer
Dim osld As Slide
'delete anims from just the current slide
Set osld = ActivePresentation.Slides(ActivePresentation.SlideShowWindow.View.CurrentShowPosition)
'Remove normal animations
For i = osld.TimeLine.MainSequence.Count To 1 Step -1
osld.TimeLine.MainSequence(i).Delete
Next i
'Remove triggers
For i = osld.TimeLine.InteractiveSequences.Count To 1 Step -1
For t = osld.TimeLine.InteractiveSequences(i).Count To 1 Step -1
osld.TimeLine.InteractiveSequences(i).Item(t).Delete
Next t
Next i
End Sub
我正在努力摆脱这个错误,因为我花了很长时间才弄清楚,我希望在这里发布这些信息可以帮助其他一些人。