【问题标题】:Paste a range from Excel into certain slide of Powerpoint Template using VBA使用 VBA 将 Excel 中的范围粘贴到 Powerpoint 模板的某些幻灯片中
【发布时间】:2017-01-23 09:38:02
【问题描述】:

我花了好几个小时查看针对我的问题的各种建议解决方案,但找不到任何似乎可以完成工作的东西,或者更可能的是,我对 VBA 的掌握是理解我理解在线解决方案的能力。因此,我希望你们中的一位好心人可以帮助我解决问题。

我打开了一个 Excel 工作表,其中包含少量数据(标题和数字等)

我想复制此范围并将其粘贴(不是作为图片,如果需要,我希望能够在 powerpoint 中对其进行格式化)到我已经创建的 Powerpoint 模板中的特定幻灯片(幻灯片 2)上。

我的 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 范围内

非常感谢您

【问题讨论】:

    标签: vba excel


    【解决方案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
    

    【讨论】:

    • 这太棒了@Limak,但是,粘贴的对象我无法根据需要选择单个单元格和格式。我认为这与粘贴类型的工作方式有关 - 我需要在 VBA 代码中将其更改为什么才能使其粘贴,以便我可以操作单元格的内容?
    • 我发布的方法使用格式化表单源工作簿。那么,为什么不在 Excel 中操作表格,然后将其粘贴到 PowerPoint,而不是在 PowerPoint 中编辑 Excel 对象呢?这会更复杂,甚至是不可能的。
    • 嗨,是的,这是一种解决方案,但我确实需要能够在 powerpoint 中单击一次。如果我在 Excel 中复制一些单元格,然后在 powerpoint 中粘贴特殊的“保持源格式(K)”一次,我会得到一个可编辑的表格,我可以更改单元格间距、插入新行等。如果我可以手动完成,肯定可以使用 VBA 完成?
    • 我不太确定,VBA 在这个 Excel 沙箱中运行良好,在其他任何地方都没有。在 PowerPoint 中粘贴表格后,它不是一些 Excel 单元格,而是 PowerPoint 形状。老实说,我不知道如何在另一个程序中操作这些形状。这是另一个话题,值得再写一篇文章。
    • 和谷歌搜索 ;)
    猜你喜欢
    • 2014-10-15
    • 1970-01-01
    • 2018-12-15
    • 2020-05-18
    • 2017-11-06
    • 1970-01-01
    • 2015-04-14
    • 2016-11-20
    • 2019-09-05
    相关资源
    最近更新 更多