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

piwo6bdm  于 2022-12-14  发布在  其他
关注(0)|答案(6)|浏览(408)

我使用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”的“Copy”方法失败。
然后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
u3r8eeie

u3r8eeie1#

下面是一个通过VBA访问剪贴板的小示例:
http://word.mvps.org/faqs/macrosvba/ManipulateClipboard.htm
通过在剪贴板中放入一些空文本来清除剪贴板。老实说,我不知道这是否能解决您原来的问题。

zte4gxcn

zte4gxcn2#

尝试在复制和粘贴操作之间放置Application.CutCopyMode = 0
0False表示“取消剪切或复制模式并移除移动边框”:http://msdn.microsoft.com/en-us/library/office/ff839532.aspx

ibps3vxo

ibps3vxo3#

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

vsnjm48y

vsnjm48y4#

插入应用程序失败。复制和粘贴语句之间的cutcopymode = 0。
插入应用程序时成功。cutcopymode = 0
在paste和close语句之间。

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

hts6caw35#

在粘贴之前激活对象。
.Slides(3).shapes.activate

omjgkv6w

omjgkv6w6#

我也遇到过类似的问题,在复制一个对象(一组形状)后,该对象仍然保留在内存中。Application.CutCopyMode = False没有帮助
我添加了以下内容,并解决了这个问题。Range(“A1”)。Copy '将内存中的内容替换为单元格A1。Application。CutCopyMode = False '清除Excel内存
希望能帮上忙。

相关问题