我编写了一个VBA脚本,通过一个PowerPoint(PRS_data)搜索标题匹配,然后将幻灯片复制到新的PowerPoint(PRS)。源上的幻灯片只是标题和图像。当复制一些幻灯片时,图像不会被转移,或者我得到一个带有红色X的盒子。
我正在使用PowerPoint 2007 SP3,因此红色X修补程序不是问题。
我也尝试过添加DoEvents和Sleep,但没有成功。
如果我在用户的屏幕上最大化目标窗口,它似乎可以工作,但如果它被最小化,我会得到零星的空白幻灯片。结果不一致。此外,我可以确认幻灯片 do 被复制,因为目标是一个空的演示文稿,并且它上面填充了只有正确标题的幻灯片。虽然结果不一致。
之前有人遇到过这个问题吗?
以下是代码:
For Each Sld In PRS_data.Slides
If Sld.SlideIndex > 1 Then
If (Sld.Shapes.Title.TextFrame.TextRange.Text Like "*" & iDiv & " Division*") Then
PRS_data.Slides.Range(Sld.SlideIndex).Cut
PRS.Windows(1).Activate
PRS.Slides.Paste
DoEvents
End If
End If
Next
答案 0 :(得分:2)
剪切或复制后,您无法立即执行粘贴。系统上的其他程序正在对剪切作出反应,因此剪贴板尚未可用。多年以前,你可能会从PowerPoint中获得“无法打开剪贴板”的错误,但不是它显然只是默默地失败了。
请注意,如果这是最终用户应用程序,并且他们有其他可运行剪贴板的应用程序,或者正在使用远程桌面,那么这些用户将讨厌您的程序。提供剪贴板是为了方便用户,而不是开发人员。
也就是说,你可以通过在CUT / COPY命令之后立即添加2秒的睡眠来完成这项工作。