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

修改Excel VBA代码以粘贴到特定ppt幻灯片中,excel,powerpoint,vba,Excel,Powerpoint,Vba,我是这个论坛的新手,几个月后才接触VBA。我所有的编码经验都是在Matlab中,到目前为止,我发现它比VBA容易得多。我已经阅读了论坛规则,并且到处寻找这个答案,但是没有结果 我正在尝试将不同的excel范围粘贴到PowerPoint的不同幻灯片中。我想修改下面的代码(取自不同论坛答案的snipet),以便将范围粘贴到我所指的相应PowerPoint幻灯片中,无论活动幻灯片是什么。我尝试过“gotoslide”,但不起作用,使用了ppviewnormal,但也不起作用。然后,在不同的幻灯片上针对

我是这个论坛的新手,几个月后才接触VBA。我所有的编码经验都是在Matlab中,到目前为止,我发现它比VBA容易得多。我已经阅读了论坛规则,并且到处寻找这个答案,但是没有结果

我正在尝试将不同的excel范围粘贴到PowerPoint的不同幻灯片中。我想修改下面的代码(取自不同论坛答案的snipet),以便将范围粘贴到我所指的相应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
从最后一行中删除“.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

您必须
将PPSlide
设置为所需的目标幻灯片。你试过了吗?是的,这不是我在上面用“Set-PPSlide=PPPres.Slides(5)”所做的吗?根据这句话“不管活动幻灯片是什么”,你并不清楚这是你想要的,因为你没有足够详细地描述你遇到的问题。首先,您需要定义一个幻灯片(大概您已经定义了)。然后,您需要
GoToSlide
转到该幻灯片,然后才能在该幻灯片上选择形状。您不能在非活动幻灯片上选择形状。谢谢!我之所以选择它,是因为我接着修改了我粘贴的图片的高度、宽度等,但我会用另一种方式。