PowerPoint VBA-粘贴特殊(增强型图元文件)错误 [英] PowerPoint VBA - Paste Special (Enhanced Metafile) bug

查看:18
本文介绍了PowerPoint VBA-粘贴特殊(增强型图元文件)错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用PowerPoint 2003 SP3中的宏在Excel工作簿中查找指定的图表,将其复制,然后将其作为增强型图元文件粘贴到当前幻灯片中,最终使用以下代码行:

Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile

只要工作正常,我还会收到以下错误:

Run-time error '-2147188160 (80048240)':
View (unknown member) : Invalid request. The specified data type is unavailable.

如果结束宏并尝试手动将"特殊"粘贴为增强型图元文件,则没有任何问题,因此剪贴板对象或passSpecialtype不会无效。

还有没有人经历过这种情况?您有解决方案或变通办法吗?在Google搜索中有关此错误的结果很少,也没有解决方案。


更新

通用代码如下:

Set presPPTCurrent = ActivePresentation
Set objXLApp = GetObject(, "Excel.Application")

''#Find the target chart and copy it to the clipboard
With objXLApp
    ''#This part works - if I go to Excel, I can see that the chart is copied
End With

''#Now paste in the chart as an Enhanced Metafile
presPPTCurrent.Application.Activate
Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile
请注意,这是在将形状传递到的Sub中(传递的形状用作在Excel中查找图表的引用)。我已经意识到,只有当我尝试在从另一个Sub中的for next循环传递的多个形状上重用此子对象时,它才会出现错误。

但是,如果我通过另一个Sub将单个形状传递给此Sub,然后重新运行传递多个形状的Sub,则它运行正常。


解决方案

根据Otaku提到的,宏正在失去对幻灯片窗格的关注。告诉它重新选择幻灯片窗格解决了问题。

Application.ActiveWindow.Panes(2).Activate

推荐答案

这可能是失去焦点,在Excel和Powerpoint之间切换会导致Powerpoint失去焦点,因此没有ActiveWindow可供Powerpoint粘贴到其中,或者ActiveWindow在Powerpoint中变成了不同的Pane,如幻灯片浏览或便笺窗格。

这篇关于PowerPoint VBA-粘贴特殊(增强型图元文件)错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆