2016-08-09 85 views
0

Ich habe ein Problem, wenn ich versuche, einen Bereich aus Excel zu kopieren und mit VBA in Powerpoint einzufügen.Formen (Unbekanntes Mitglied) Einfügen von Excel in PowerPoint

Ich erhalte die folgenden Fehler: Run-time error (80048240) Shapes (unknown member): Invalid request. Clipboard is empty or contains data which may not be pasted here.

Der Fehler in dem folgenden Code ausgelöst wird, unter Verwendung von Excel 2010 und 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 

Dies tritt nur auf, wenn die ppPasteHTML Option oder die ppPasteDefault Option.

Die Zwischenablage ist definitiv nicht leer und ich kann den Bereich manuell als HTML einfügen, indem ich die spezielle Menüoption in Powerpoint einfüge, die mich verwirrt, da der Fehler das Problem anzeigt.

Ich habe mehrere Fragen recherchiert, von denen keine geholfen haben. Sie deuteten an, dass ich die Folie zuerst aktivieren musste, bevor Sie einfügen, was der obige Code tun wird, aber der Fehler wird ausgelöst.

Kann jemand den Grund für den Fehler vorschlagen und wie man das Problem löst?

+0

Folien (2) .PasteSpecial ("Html")? – Slai

+0

@Slai Die 'PasteSpecial' Methode erwartet einen Datentyp' PpPasteDataType' siehe: https://msdn.microsoft.com/en-us/library/office/ff745158.aspx – Gareth

+1

Mein Fehler. es scheint keine separate slide.paste special wie in Excel zu geben. Vielleicht kann dies http://stackoverflow.com/questions/25558354/best-way-to-copy-excel-table-into-powerpoint-2010 helfen. – Slai

Antwort

0

Ich habe noch nicht manged um das Problem zu lösen, sondern als eine Arbeit um, ich bin mit dem folgenden Befehl 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` 
0

die Sie interessieren (von der Powerpoint-Seite):

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