2017-01-23 118 views
2

我花了好幾個小時看看我的問題的各種建議的解決方案,但無法找到任何似乎做這項工作,或更可能,我的把握VBA瞭解我理解在線解決方案的能力。因此,我希望你們中的一位善良的人可以幫助我解決問題。使用VBA粘貼範圍從Excel到PowerPoint幻燈片的某個幻燈片

我有一個包含數據的少量(標題和編號等)的Excel工作表打開

我想複製這個範圍,並將其粘貼(而不是作爲一個照片,我希望能夠格式化它在幻燈片內如有必要)放在特定的幻燈片(幻燈片2)中,我已經創建了一個Powerpoint模板。

我VBA正確打開使用下面的代碼基於模板的新演示:

'Opens a PowerPoint Document from Excel 

Dim objPPT As Object 

Set objPPT = CreateObject("PowerPoint.Application") 
objPPT.Visible = True 

'Change the directory path and file name to the location 
'of your document 

objPPT.Presentations.Open "C:\Users\Colin\Dropbox (Edge45)\Edge45 Team Folder\Edge45 Company Documents\Templates\Powerpoint Templates\Edge45 Audit Template Macro.potm", Untitled:=msoTrue 

然而,這是我卡住 - 我不知道如何將Excel表格數據粘貼到演示文稿打開後,正確的幻燈片。我的數據是在範圍A1:D16

非常感謝你提前

回答

1

試試這一個。我已將Excel工作表分配給一個變量(XLws),並將PowerPoint幻燈片分配給另一個變量(PPslide)。您可以在它們之間複製/粘貼對象。

順便說一句,你需要啓用PowerPoint庫。如果你不這樣做,請在你的VBA項目中去工具 - >參考 - > Microsoft PowerPoint 15.0對象庫

Sub PPcopy() 
Dim PPapp As PowerPoint.Application, PPpres As PowerPoint.Presentation, PPslide As PowerPoint.Slide 
Dim XLws As Worksheet 

    Set XLws = ActiveSheet 
    Set PPapp = New PowerPoint.Application 
    Set PPpres = PPapp.Presentations.Open("C:\Users\Colin\Dropbox (Edge45)\Edge45 Team Folder\Edge45 Company Documents\Templates\Powerpoint Templates\Edge45 Audit Template Macro.potm") 
    PPapp.Visible = True 
    Set PPslide = PPpres.Slides(2) 
    XLws.Range("A1:D16").Copy 
    PPslide.Shapes.PasteSpecial DataType:=ppPasteOLEObject, Link:=msoFalse 
    Application.CutCopyMode = False 

End Sub 
+0

然而,@Limak太棒了,粘貼的對象我無法根據需要選擇單獨的單元格和格式。我假設這是與粘貼類型的工作方式有關 - 我需要將其更改爲VBA代碼中的粘貼,以便粘貼,以便操作單元格的內容? – Superhans

+0

我發佈的方法使用格式化表單源工作簿。那麼,爲什麼不在Excel中操作你的表格,然後將它粘貼到PowerPoint中,而不是在PowerPoint中編輯Excel對象呢?這會變得更加複雜,甚至是不可能的。 – Limak

+0

嗨,是的,這是一個解決方案,但我確實需要在Powerpoint中點擊一次。如果我在Excel中複製一些單元格,然後在Powerpoint中粘貼一次特殊的「Keep Source Formatting(K)」,我會得到一個可編輯的表格,我可以更改單元格間距,插入新行等。如果我可以手動執行,肯定可以使用VBA完成? – Superhans