本文介绍了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-粘贴特殊(增强型图元文件)错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!