使用 VBA 将 table with editable 单元格从 Excel 粘贴到 Powerpoint
Paste table with editable cells from Excel to Powerpoint using VBA
我有一些 VBA 可以成功地从 Excel 复制单元格数据并粘贴到给定模板的给定 powerpoint 幻灯片中。
但是,对于粘贴的对象,我无法 select 单个单元格并根据需要设置格式。我认为这与粘贴类型的工作方式有关 - 我需要在 VBA 代码中将其更改为什么才能使其粘贴,以便我可以操作单元格的内容?
如果我手动复制 Excel 中的一些单元格,然后在 powerpoint 中手动粘贴特殊 "Keep Source Formatting (K)" 一次,我会得到一个 editable table,我可以更改单元格间距,插入新行等。如果我可以手动完成,当然可以使用 VBA?
这是我执行粘贴的代码:
'Opens a PowerPoint Document from Excel
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", Untitled:=msoTrue)
PPapp.Visible = True
Set PPslide = PPpres.Slides(2)
XLws.Range("A1:D16").Copy
PPslide.Shapes.PasteSpecial DataType:=ppPasteOLEObject, Link:=msoFalse
Application.CutCopyMode = False
如果换行:
PPslide.Shapes.PasteSpecial DataType:=ppPasteOLEObject, Link:=msoFalse
到
PPslide.Shapes.PasteSpecial DataType:=ppPasteHTML, Link:=msoFalse
它将插入可编辑的范围 HTML,就像您自己 copy/pasted 范围一样。
有关其他选项,请参阅 https://msdn.microsoft.com/en-us/library/office/ff745158.aspx。
我有一些 VBA 可以成功地从 Excel 复制单元格数据并粘贴到给定模板的给定 powerpoint 幻灯片中。
但是,对于粘贴的对象,我无法 select 单个单元格并根据需要设置格式。我认为这与粘贴类型的工作方式有关 - 我需要在 VBA 代码中将其更改为什么才能使其粘贴,以便我可以操作单元格的内容?
如果我手动复制 Excel 中的一些单元格,然后在 powerpoint 中手动粘贴特殊 "Keep Source Formatting (K)" 一次,我会得到一个 editable table,我可以更改单元格间距,插入新行等。如果我可以手动完成,当然可以使用 VBA?
这是我执行粘贴的代码:
'Opens a PowerPoint Document from Excel
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", Untitled:=msoTrue)
PPapp.Visible = True
Set PPslide = PPpres.Slides(2)
XLws.Range("A1:D16").Copy
PPslide.Shapes.PasteSpecial DataType:=ppPasteOLEObject, Link:=msoFalse
Application.CutCopyMode = False
如果换行:
PPslide.Shapes.PasteSpecial DataType:=ppPasteOLEObject, Link:=msoFalse
到
PPslide.Shapes.PasteSpecial DataType:=ppPasteHTML, Link:=msoFalse
它将插入可编辑的范围 HTML,就像您自己 copy/pasted 范围一样。
有关其他选项,请参阅 https://msdn.microsoft.com/en-us/library/office/ff745158.aspx。