修改Excel VBA代码以粘贴到特定的ppt幻灯片中

时间:2013-09-06 18:25:23

标签: excel-vba powerpoint-vba vba excel

我是论坛的新手,还有几个月的VBA新手。我的所有编码经验都在Matlab中,到目前为止,我发现它比VBA更容易。我已经阅读了论坛规则,并搜索了这个答案的高低,但无济于事。

我正在尝试将不同的Excel范围粘贴到PowerPoint的不同幻灯片中。我想修改下面的代码(从不同论坛答案的snipets中获取),以便将范围粘贴到相应的PowerPoint幻灯片中我表示,无论活动幻灯片是什么。我试过“gotoslide “这不起作用,并使用了ppviewnormal,但这也行不通。然后,将针对不同幻灯片上的不同范围重复此代码。到目前为止,代码只有在我编写的幻灯片上才有效,我知道它与有关幻灯片的问题有关,但似乎无法弄清楚如何修改代码。提前感谢您的帮助!

' Desired Range in Excel to be copied into ppt
  Sheets("Summary").Activate
  Range("A5:H40").Select

' Initialize PowerPoint Object Library
Set PPApp = GetObject(, "Powerpoint.Application")
' Reference active presentation
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewSlide
' Denote slide where range is to be copied
Set PPSlide = PPPres.Slides(5)

' Copy the range as a picture
Selection.CopyPicture Appearance:=xlScreen, _
    Format:=xlPicture

' Paste the range
PPSlide.Shapes.Paste.Select

1 个答案:

答案 0 :(得分:3)

从最后一行删除“.Select”

这是您的代码的缩写版本:

' Initialize PowerPoint Object Library
Set PPApp = GetObject(, "Powerpoint.Application")
' Reference active presentation
Set PPPres = PPApp.ActivePresentation

' Copy the range as a picture
Sheets("Summary").Range("A5:H40").CopyPicture Appearance:=xlScreen, Format:=xlPicture
' Paste the range
PPPres.Slides(1).Shapes.Paste