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

后端 未结 2 1001
有刺的猬
有刺的猬 2021-01-16 08:47

I\'m trying to get a series of Excel tables into PowerPoint and successfully created a macro for this in Office 2013, but am trying to adapt it to Office 2010.

The i

相关标签:
2条回答
  • 2021-01-16 08:58

    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
    
    0 讨论(0)
  • 2021-01-16 09:23

    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:

    enter image description here

    0 讨论(0)
提交回复
热议问题