2017-04-21 140 views
1

詳情: Mac的Excel文件(2016)複製到Mac地產(2016)複製Excel表格粘貼到具體的PPT幻燈片

最後,我想通過所有的表環和粘貼在它自己單獨的幻燈片每個表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 

我在做什麼錯?任何幫助,將不勝感激。

+2

首先,請將OPTION EXPLICIT添加到代碼模塊的第一行。讓它成爲一種習慣,你會在生活中變得更加幸福。其次,您的PasteSpecial行使用「應用程序」,這將是Excel,但我認爲您希望它是PowerPoint應用程序。使用PPT.ActiveWindow.View.PasteSpecial ... –

+2

^^此外,我不經常使用Powerpoint VBA(即從不),但應該'PPT.Slides(2).Select'爲'PPPres.Slides(2)。 Select'?我希望「幻燈片」可以是演示文稿的屬性,而不是Powerpoint應用程序的屬性。 – YowE3K

回答

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 
+0

收到編譯錯誤:未找到方法或數據成員。它突出顯示了「Set myShape = PPPres.Slides(2).Shapes.PasteSpecial(ppPastePNG,msoFalse)」代碼行中的「.PasteSpecial」。 –

+0

@BenSimmons你什麼時候更新它的MAC?我無法在MAC上測試它,因爲我正在使用PC。我已經添加了第二個選項,看它可能適用於你 –

+0

我在原來的描述中使用了它。這看起來是問題。 'PasteSpecial(ppPastePNG)'似乎是問題所在。不知道如何完成是MAC PPT。接收與以前相同的錯誤。 –