2

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

我正在尝试将不同的 excel 范围粘贴到 PowerPoint 的不同幻灯片中。我想修改下面的代码(取自不同论坛答案的片段),以便将范围粘贴到我表示的相应 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
4

1 回答 1

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
于 2013-09-06T18:55:27.060 回答