【问题标题】:PasteSpecial Excel Table into Slide Placeholder PowerPoint VBA将特殊 Excel 表格粘贴到幻灯片占位符 PowerPoint VBA 中
【发布时间】:2020-05-18 16:22:18
【问题描述】:

很抱歉发布另一个 PasteSpecial 问题,但我还没有找到与我正在尝试做的事情完全相关的内容。

我有一些 VBA 代码:

For Each Workbook In Workbooks

For Each Sheet In Workbook.Sheets

running_pp_app.ActivePresentation.Slides.Add running_pp_app.ActivePresentation.Slides.Count + 1, ppLayoutTitleOnly
Sheet.Range("a1:b2").Copy
running_pp_app.ActivePresentation.Slides(running_pp_app.ActivePresentation.Slides.Count).Shapes.PasteSpecial DataType:=ppPasteDefault, link:=msoCTrue

Next Sheet
Next Workbook

当我将 Excel 范围粘贴到幻灯片中时,我最终希望粘贴的范围/形状占据幻灯片布局中的占位符。我不希望它只是幻灯片上的一些附加形状。

最终,我的目标是能够通过主布局(通过 UI,在我的 VBA 运行后)轻松控制所有粘贴的范围/形状。我不知道如何将链接的 OLE 对象粘贴到幻灯片中,以便它占据占位符位置 - 例如,它是“标题和内容”主布局中的“内容”。

我该怎么做?

感谢所有帮助。谢谢。

【问题讨论】:

标签: excel vba layout powerpoint copy-paste


【解决方案1】:

我的第一个想法是这似乎是不可能的。这可以粘贴到占位符中:

Sub PasteIntoPlaceholder()
    ActivePresentation.Slides(1).Shapes(2).Select
    ActiveWindow.View.PasteSpecial DataType:=ppPasteDefault
End Sub

但是,一旦您添加了链接参数,它就会作为单独的形状粘贴,而不是在占位符中。

这主要对应于用户界面中的类似操作。使用选定的占位符直接粘贴到幻灯片上会按预期插入图表,但选择性粘贴不会。

修订:

按照您的建议,这主要完成了工作。占位符会缩小以适合粘贴的 Excel 对象,而不是 Excel 对象会扩展以适合占位符,但是,它可以工作:

Sub PasteIntoPlaceholder()
    With ActiveWindow
        .View.PasteSpecial DataType:=ppPasteDefault, Link:=msoCTrue
        .Selection.Cut
        ActivePresentation.Slides(1).Shapes(2).Select
        .View.Paste
    End With
End Sub

【讨论】:

  • 感谢您的回复,约翰。但是,实际上有一种手动方法可以将链接的 OLE 对象放入占位符中。首先,通过 UI,将 OLE 对象特殊粘贴到幻灯片上。然后,切割对象。然后,单击幻灯片上的对象占位符。然后,粘贴正常。 OLE 对象将被保留(带有链接),但它也将占据占位符。我试图用 VBA 复制它,但它的工作方式不同。您能否确认您可以手动复制它以及您将使用哪些 VBA 步骤来复制它。
  • 这是一个有趣的解决方案,约翰。你能解释一下为什么这使用 view.paste 方法有效,并且似乎不适用于 shape.paste 方法。我试着做类似的事情:shapes.pastespecial... shapes(3).select shapes(3).cut shapes(2).select shapes(2).paste 这个方法似乎不像你的那样有效。你知道为什么吗?
  • 对不起,我不知道为什么。这只是那些 VBA 的怪事之一。我是从长期从事 PowerPoint 程序员的 John Wilson 那里学到的。
  • 好的,再次感谢您的帮助,约翰。我一定会在另一篇文章中感谢 John Wilson。
猜你喜欢
  • 2014-10-15
  • 2018-12-15
  • 2023-03-14
  • 2017-09-17
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多