形状(未知成员)从Excel粘贴到Powerpoint

时间:2016-08-09 10:11:19

标签: excel vba excel-vba copy-paste powerpoint-vba

尝试从Excel复制范围并使用VBA粘贴到Powerpoint时出现问题。

我收到以下错误:Run-time error (80048240) Shapes (unknown member): Invalid request. Clipboard is empty or contains data which may not be pasted here.

使用Excel 2010和Powerpoint 2010在以下代码中引发错误:

ws.Range("A1:Y" & lastRow).Copy

pApp.ActiveWindow.View.GotoSlide 2
pApp.ActiveWindow.Panes(2).Activate

With .Slides(2).Shapes
    .PasteSpecial (ppPasteHTML) `<~~~ Error occurs here!`
End With

仅在使用ppPasteHTML选项或ppPasteDefault选项时才会出现此情况。

剪贴板肯定不是空的,我可以使用Powerpoint中的粘贴特殊菜单选项手动将范围粘贴为HTML,这让我很困惑,因为这是错误表明问题所在。

我研究了几个问题,其中没有一个有帮助。他们表示我需要在粘贴之前先激活幻灯片,上面的代码会执行,但会抛出错误。

有人可以提出错误原因以及如何解决问题吗?

2 个答案:

答案 0 :(得分:0)

我仍然无法解决问题,但作为解决方法,我使用以下mso命令:

ws.Range("A1:Y" & lastRow).Copy

pApp.ActiveWindow.View.GotoSlide 2
pApp.ActiveWindow.Panes(1).Activate

pApp.CommandBars.ExecuteMso ("Paste") '<~~ Pastes as default HTML table`

答案 1 :(得分:0)

试试这个(从PowerPoint方面):

   Set sld = Application.ActiveWindow.View.Slide
   ws.Range("A1:Y" & lastRow).Copy
   sld.Shapes.PasteSpecial DataType:=ppPasteHTML