在Excel VBA中复制graphics时清除剪贴板

我使用VBA将多个Excelgraphics从Excel复制并粘贴到Powerpoint:

'copy from excel worksheet Workbooks(Stats & ".xls").Worksheets(Stats).ChartObjects("graph4").Copy 'paste into powerpoint presentation .Slides(3).Shapes.Paste ' more code and more copy and pastes ' ... 

有时,复制图表失败。 除了内存问题之外,我没有任何解释。 我得到的错误消息:

对象“Chart对象”的方法“复制”失败。

然后Excel得不到响应,我必须重新启动它。

我能做些什么来防止这种情况? 也许我可以清除复制和粘贴操作之间的剪贴板?

更新:我已经尝试了两种提到的方式来清除剪贴板。 复制和粘贴操作时常失败。 运行时错误是“-2147417848(80010108)”。 网上有关于这个错误的一些信息,所以我会从那里开始。

更新(最后):我想我解决了这个问题,把这些代码放在图表复制和粘贴的部分前面。 错误没有再出现。

 DoEvents 'lets the operating system clear / execute any backed up / queued events that it might have to execute. 'slow down the execution (to not get an error) Workbooks(Stats & ".xls").Save 

尝试将复制和粘贴操作之间的Application.CutCopyMode = 0

0False意思是“取消剪切或复制模式,并删除移动边框”: http : //msdn.microsoft.com/en-us/library/office/ff839532.aspx

以下是VBA访问剪贴板的一个小例子:

http://word.mvps.org/faqs/macrosvba/ManipulateClipboard.htm

将一些空的文本放入剪贴板中。 老实说,我不知道这是否能解决你原来的问题。

您没有提及您使用的是哪个版本的Office。如果2007年,是否应用了Service Pack 2并检查了可能解决此问题的修复程序?

2007年的最初版本是可怕的。

在复制和粘贴语句之间插入application.cutcopymode = 0是不成功的。

当我插入application.cutcopymode = 0时,我成功了
粘贴和closures语句之间。

 windows(ThisBook).activate: range(nextcell).select: activesheet.paste application.cutcopymode = 0 windows(OtherBook).activate: activewindow.close 

在粘贴之前激活对象。 我解决了使用以下

.Slides(3).shapes.activate