Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBA将带有可编辑单元格的表格从Excel粘贴到Powerpoint_Vba_Excel_Powerpoint - Fatal编程技术网

使用VBA将带有可编辑单元格的表格从Excel粘贴到Powerpoint

使用VBA将带有可编辑单元格的表格从Excel粘贴到Powerpoint,vba,excel,powerpoint,Vba,Excel,Powerpoint,我有一些VBA,它成功地从Excel复制单元格数据,并粘贴到给定模板的给定powerpoint幻灯片中 但是,对于粘贴的对象,我无法根据需要选择单个单元格和格式。我假设这与粘贴类型的工作方式有关-我需要在VBA代码中将其更改为什么才能使其粘贴,以便我可以操作单元格的内容 如果我在Excel中手动复制一些单元格,然后在powerpoint中手动粘贴特殊的保留源格式K,我会得到一个可编辑的表格,我可以更改单元格间距,插入新行等。如果我可以手动执行,当然可以使用VBA执行 以下是我进行粘贴的代码: '

我有一些VBA,它成功地从Excel复制单元格数据,并粘贴到给定模板的给定powerpoint幻灯片中

但是,对于粘贴的对象,我无法根据需要选择单个单元格和格式。我假设这与粘贴类型的工作方式有关-我需要在VBA代码中将其更改为什么才能使其粘贴,以便我可以操作单元格的内容

如果我在Excel中手动复制一些单元格,然后在powerpoint中手动粘贴特殊的保留源格式K,我会得到一个可编辑的表格,我可以更改单元格间距,插入新行等。如果我可以手动执行,当然可以使用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

它将以可编辑HTML的形式插入该范围,就像您自己复制/粘贴了该范围一样


有关其他选项,请参阅。

太棒了-谢谢。快速问题,如何使用VBA在Powerpoint中安排表格的位置和大小?请查看
PPslide.Shapes.PasteSpecial DataType:=ppPasteHTML, Link:=msoFalse