Best Way to Copy Excel Table into PowerPoint (2010)?

牧云@^-^@ 提交于 2019-12-01 12:39:44

This should do it:

Just make sure you are loading the PowerPoint Library in Excel.

Tools->References->"Microsoft PowerPoint nn.n Object Library"

Also I assume that Table3, ChartStart, ChartEnd & Row2 have set values

Dim pptApp As PowerPoint.Application
Dim pptPres As PowerPoint.Presentation
Dim pptSlide As PowerPoint.Slide

'Open PowerPoint and create a new presentation.
Set pptApp = New PowerPoint.Application
Set pptPres = pptApp.Presentations.Add

Set pptSlide = pptPres.Slides.Add(1, ppLayoutBlank)

For i = 0 To Table3
Set objRange = Worksheets("Charts").Range(ChartStart, ChartEnd).Offset(i * Row2, 0)
objRange.Copy
pptSlide.Shapes.PasteSpecial DataType:=ppPasteHTML, Link:=msoFalse
Next i

For j = 1 To pptSlide.Shapes.Count
    With pptSlide.Shapes(j)
    .Name = "Table" & j
    End With
Next j

Set pptSlide = Nothing
Set pptPres = Nothing
Set pptApp = Nothing
David Zemens

The long/numeric equivalent for ppPasteHtml is 8. You can query this for yourself by opening up the VBE in PowerPoint, and doing ?ppPasteHTML in the Immediate window, or Debug.Print ppPasteHtml in a module/routine.

Using early binding, try:

pptSlide.Shapes.PasteSpecialy DataType:=ppPasteHtml

Or, using late binding:

pptSlide.Shapes.PasteSpecial DataType:=8

Alternatively, I have seen a few other q's where people have problems pasting from one application to another application (e.g., from Excel to PowerPoint etc.) In those cases, it seems that sometimes the only way to resolve is to use the CommandBars object, however I am not sure if there is an "HTML" paste method from CommandBars.

pptSlide.Parent.ExecuteMso "PasteExcelTableSourceFormatting"

Here are some other possible MSO commands you could use, but like I said I don't see one that appears to paste HTML, although this list is for Office 2010:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!