Vba 以编程方式剪切和粘贴形状

Vba 以编程方式剪切和粘贴形状,vba,powerpoint,Vba,Powerpoint,我正在使用源代码从一张幻灯片剪切并粘贴形状到另一张幻灯片。它过去运作良好 最近我遇到了一个问题,在粘贴函数中出现了一个错误,表示剪贴板是空的。当我使用VB编辑器后退一步,然后再前进一步时,效果很好 有什么建议吗?这在StackOverflow上经常得到解决。搜索功能应该会提供一些建议 这类问题通常有两个原因: 要求PPT粘贴不在剪贴板上的格式 操作的复制部分可能需要一些时间才能完成,如果您的粘贴命令紧跟在复制之后,剪贴板上可能(还)没有任何内容 尝试以下内容(航空代码): 史蒂夫,谢谢你

我正在使用源代码从一张幻灯片剪切并粘贴形状到另一张幻灯片。它过去运作良好

最近我遇到了一个问题,在粘贴函数中出现了一个错误,表示剪贴板是空的。当我使用VB编辑器后退一步,然后再前进一步时,效果很好


有什么建议吗?

这在StackOverflow上经常得到解决。搜索功能应该会提供一些建议

这类问题通常有两个原因:

  • 要求PPT粘贴不在剪贴板上的格式

  • 操作的复制部分可能需要一些时间才能完成,如果您的粘贴命令紧跟在复制之后,剪贴板上可能(还)没有任何内容

尝试以下内容(航空代码):


史蒂夫,谢谢你的观察。然而,我看不出这两个理由都是正确的。说这个的第一个原因是它大部分时间都在工作,然后突然发出嘶嘶声,说剪贴板是空的。无法预测无法复制到剪贴板上的形状。它们大体上都是相同类型的形状,确实有些形状是相同的。复制它们的所有形状都有唯一的名称。所以我不知道问题出在哪里。也许你可以更好地解释一下你的代码,谢谢你的帮助。我找到了一个更好的方法,更适合我的长期战略。也就是说,将所有形状导出到一个文件夹中,然后我可以在我喜欢的地方和喜欢的时候插入它们,而不必担心由于此复制和粘贴问题而产生的任何差异。对于您的第一条评论,我发布的代码会不断粘贴/测试,以查看是否粘贴了任何内容,直到得到肯定的结果,然后继续。至于第二个,很高兴你有更好的方式满足你的需求。
Dim oShp as Shape
' Copy the [whatever]
On Error Resume Next
While oShp is Nothing
  Set oShp = ' paste here
Wend

On Error GoTo 0