从Excel复制范围并将其粘贴到Powerpoint中不作为元文件,而是作为可以在PPP中编辑的表

时间:2015-06-22 16:13:46

标签: vba excel-vba powerpoint-vba excel

我想要做的就是从Excel复制一个范围,然后将此范围粘贴到PowerPoint中。

当我的范围从Excel手动复制到剪贴板时......如果我在粘贴到PowerPoint时右键单击空白幻灯片,它会让我选择粘贴“使用目标样式”。

这意味着我可以编辑结果表。这是我想要的结果。

到目前为止,我只找到了涉及作为元文件粘贴的解决方案。

如果您有解决方案,请告诉我完整的代码,包括尺寸,因为PowerPoint中的VBA真的不是我的一杯茶。

提前感谢恢复我的理智!

Private Sub CommandButton2_Click()

        Dim newPowerPoint As PowerPoint.Application
        Dim activeSlide As PowerPoint.Slide
        Dim cht As Excel.ChartObject


     'Look for existing instance
        On Error Resume Next
        Set newPowerPoint = GetObject(, "PowerPoint.Application")
        On Error GoTo 0



    'Show the PowerPoint
        newPowerPoint.Visible = True


            newPowerPoint.ActiveWindow.View.GotoSlide newPowerPoint.ActivePresentation.Slides.count
            Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.count)


            ActiveSheet.Range("d51:d57").Copy
            activeSlide.Shapes.PasteSpecial ppPasteEnhancedMetafile
            newPowerPoint.ActiveWindow.Selection.ShapeRange.Top = 165
            newPowerPoint.ActiveWindow.Selection.ShapeRange.Left = 395

    AppActivate ("Microsoft PowerPoint")

    Set activeSlide = Nothing
    Set newPowerPoint = Nothing

End Sub

1 个答案:

答案 0 :(得分:0)

PowerPoint对象模型中似乎没有相应的方法。唯一的方法是调用功能区按钮:

ActiveSheet.Range("d51:d57").Copy
newPowerPoint.CommandBars.ExecuteMso("PasteExcelTableSourceFormatting")

BTW:要查找功能区按钮列表,请搜索" Office 2010控制ID"。