我使用VBA将几个Excel图形从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
' ...
有时,复制图表会失败。除了记忆问题,我没有其他解释。 我得到的错误消息:
对象'Chartobject'的方法'复制'失败。
然后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
答案 0 :(得分:2)
以下是VBA访问剪贴板的一个小例子:
http://word.mvps.org/faqs/macrosvba/ManipulateClipboard.htm
通过在其中放入一些空文本来清除剪贴板。老实说,我不知道这是否能解决你原来的问题。
答案 1 :(得分:1)
尝试在复制和粘贴操作之间放置Application.CutCopyMode = 0
。
0
或False
表示“取消剪切或复制模式并删除移动边框”:
http://msdn.microsoft.com/en-us/library/office/ff839532.aspx
答案 2 :(得分:0)
您没有提到您正在使用的Office版本。如果是2007年,您是否应用了Service Pack 2并检查了可能解决此问题的修补程序?
2007年的原版很糟糕。
答案 3 :(得分:0)
我插入不成功 application.cutcopymode = 0 复制和粘贴语句之间。
插入时我成功了
application.cutcopymode = 0
粘贴和关闭语句之间。
windows(ThisBook).activate: range(nextcell).select: activesheet.paste
application.cutcopymode = 0
windows(OtherBook).activate: activewindow.close
答案 4 :(得分:0)
粘贴前激活对象。我使用以下
解决了 .Slides(3).shapes.activate