我正在使用PowerPoint 2003 SP3中的宏来查找Excel工作簿中指定的图表,将其复制,然后将其作为增强型图元文件粘贴到当前幻灯片中,最终用以下代码行实现:
Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile
As often as it works, I also receive the following error:
Run-time error '-2147188160 (80048240)': View (unknown member) : Invalid request. The specified data type is unavailable.
If I end the macro and attempt to manually Paste Special as Enhanced Metafile, I have no problem, so it's not as though the clipboard object or the pastespecialtype is invalid.
Has anyone else experienced this? Do you have a solution or a workaround? There are few results and no solutions in a Google search on this error.
Update
The general code is as follows:
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
Note that this is in a Sub to which a Shape is passed (the Shape being passed is used as a reference to find the chart in Excel). I've realized that it only bugs when I attempt to reuse this sub on multiple shapes passed from a For Next loop in another Sub.
However, if I pass a single Shape to this Sub with via another Sub and then re-run the Sub that passes multiple Shapes, it runs fine.
Solution
Per Otaku's mention, the macro was losing its focus on the Slide Pane. Telling it to re-select the Slide Pane solved the issue.
Application.ActiveWindow.Panes(2).Activate
ActiveWindow
。如果您发布有关从Excel抓取的代码,那可能会有所帮助。 - Todd Main