我在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.
如果我结束宏并尝试手动粘贴Special作为增强型图元文件,我没有问题,所以它不像剪贴板对象或pastespecialtype无效 .
还有其他人经历过这个吗?您有解决方案或解决方法吗? Google搜索中此错误的结果很少且没有解决方案 .
Update
一般代码如下:
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
请注意,这是在传递Shape的Sub中(传递的Shape用作在Excel中查找图表的参考) . 我已经意识到,当我尝试在另一个Sub中的For Next循环传递的多个形状上重用这个sub时,它只会出错 .
但是,如果我通过另一个Sub将单个Shape传递给此Sub,然后重新运行传递多个Shapes的Sub,则运行正常 .
Solution
Per Otaku提到,宏观正在失去对Slide Pane的关注 . 告诉它重新选择幻灯片窗格解决了这个问题 .
Application.ActiveWindow.Panes(2).Activate
5 回答
这可能是一个失去焦点,在Excel和PowerPoint之间切换导致PowerPoint失去焦点,因此没有
ActiveWindow
用于PowerPoint粘贴或ActiveWindow
在PowerPoint中变为不同的Pane
,例如幻灯片浏览器或Notes窗格 .DataType是:wdPasteEnhancedMetafile
由于某种原因,宏录制器使用ppPasteEnhancedMetafile,这是错误的 .
这是一个正常工作的宏,只需点击一次而不是3次,就可以粘贴没有格式化的文本 .
我还有3个宏将文本放在一个表单中,只需一次点击而不是4: - 自动表单的格式 - 文本区域 - 选择顶部,中间,底部, - 单击希望的位置
这是顶部的宏:
享受,Michel.Mahieu @Cassidian.com
我遇到了同样的问题 . 我有一个宏导出很多图表到PowerPoint . 但是一些复制粘贴操作以与上面相同的错误结束(运行时错误'-2147188160(80048240)':)
我意识到PasteSpecial错误不是由于焦点丢失,而是由于剪贴板丢失 .
因此,解决方案是将区域重新复制到剪贴板,如:
也许这有助于某人......
我遇到了同样的错误,并在这里尝试了许多解决方案 . 最终为我工作的是非常简单的事情 . 我认为这是有效的,因为第一行保存了对幻灯片的引用 . 粘贴选项可以是EnhancedMetaFile而不是Bitmap .