将Excel表格粘贴复制到特定的PPT幻灯片

时间:2017-04-21 05:23:34

标签: excel vba powerpoint excel-vba-mac

详细说明: Mac Excel(2016)复制到Mac PPT(2016)

最后,我想循环遍历所有表并将每个表粘贴到PPT中各自的幻灯片上。

但首先我试图简单地从Excel复制一个表并粘贴到特定PPT文件(不是新的网络演示文稿)。

Sub OpenPPTandCopySelectedTable()

Dim PPT As PowerPoint.Application   
Set PPT = New PowerPoint.Application
PPT.Visible = True

'Open the specific Template
PPT.Presentations.Open Filename:="/Users/MyNameHere/Downloads/FileName.pptx"

'Make Specific File the Active Presentation
Set PPPres = PPT.ActivePresentation

'Copy the Excel Table
Range("Table1[#All]").Copy

'Select PowerPoint Slide number 2
PPT.Slides(2).Select

'Paste Special 
Application.ActiveWindow.View.PasteSpecial DataType:=ppPastePNG

End Sub

我做错了什么?任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试以下代码(不使用SelectActivePresentation,这会降低代码的运行时间。)

Option Explicit

Sub OpenPPTandCopySelectedTable()

Dim PPT As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim myShape As Object

Set PPT = New PowerPoint.Application

' Open the specific Template and set it (in 1 line)
Set PPPres = PPT.Presentations.Open(Filename:="/Users/MyNameHere/Downloads/FileName.pptx", ReadOnly:=msoFalse)

'Copy the Excel Table
Range("Table1[#All]").Copy

' Paste to PowerPoint and set to MyShape
'Set myShape = PPPres.Slides(2).Shapes.PasteSpecial(ppPastePNG, msoFalse)
' if you want to edit the properties
'With myShape
    '.Left = 
    '.Top =    
'End With

' Option 2: 
PPPres.Slides(2).Shapes.PasteSpecial (ppPastePNG)

End Sub