我在 PowerPoint 2003 SP3 中使用宏在 Excel 工作簿中查找指定图表,将其复制,然后将其作为增强型元文件粘贴到当前幻灯片中,最终使用以下代码行:
Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile
Run Code Online (Sandbox Code Playgroud)
只要它有效,我也会收到以下错误:
运行时错误“-2147188160 (80048240)”: 查看(未知成员):请求无效。指定的数据类型不可用。
如果我结束宏并尝试手动将特殊粘贴为增强型元文件,则没有问题,因此剪贴板对象或粘贴特殊类型并非无效。
有没有其他人经历过这种情况?您有解决方案或解决方法吗?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
Run Code Online (Sandbox Code Playgroud)
请注意,这是在传递 Shape 的 Sub 中(传递的 Shape 用作在 Excel 中查找图表的参考)。我已经意识到,当我尝试在从另一个 Sub 中的 For Next 循环传递的多个形状上重用这个 sub 时,它只会出现错误。
但是,如果我通过另一个 Sub 将单个 Shape 传递给这个 Sub,然后重新运行传递多个 Shape 的 Sub,它运行良好。
解决方案
根据 Otaku 的说法,宏正在失去对幻灯片窗格的关注。告诉它重新选择滑动窗格解决了这个问题。
Application.ActiveWindow.Panes(2).Activate
Run Code Online (Sandbox Code Playgroud)
这可能是失去焦点,即在 Excel 和 PowerPoint 之间切换导致 PowerPoint 失去焦点,因此ActiveWindow
PowerPoint 无法粘贴到其中,或者PowerPoint 中的内容ActiveWindow
变得不同Pane
,例如“幻灯片排序器”或“注释”窗格。
归档时间: |
|
查看次数: |
23060 次 |
最近记录: |