PowerPoint VBA断开OLEFormat对象中的链接

PowerPoint VBA断开OLEFormat对象中的链接,vba,hyperlink,powerpoint,break,Vba,Hyperlink,Powerpoint,Break,我有一张PowerPoint 2007幻灯片,其中有两个嵌入的excel对象。 我想访问sheet1选项卡并断开所有链接。 我试图复制和粘贴的价值,但我卡住了,虽然代码运行,它没有做什么。 非常感谢您的帮助 将oSl变暗为幻灯片 将oSheet设置为对象 将PPApp设置为PowerPoint.Application 将PPPres变暗为PowerPoint演示文稿 对于ActivePresentation.Slides中的每个oSl 对于oSl形状中的每个oSh ActiveWindow.Vi

我有一张PowerPoint 2007幻灯片,其中有两个嵌入的excel对象。 我想访问sheet1选项卡并断开所有链接。 我试图复制和粘贴的价值,但我卡住了,虽然代码运行,它没有做什么。 非常感谢您的帮助

将oSl变暗为幻灯片 将oSheet设置为对象 将PPApp设置为PowerPoint.Application 将PPPres变暗为PowerPoint演示文稿

对于ActivePresentation.Slides中的每个oSl 对于oSl形状中的每个oSh

ActiveWindow.View.GotoSlide oSl.SlideIndex
    If oSh.Type = msoEmbeddedOLEObject Then
          oSh.OLEFormat.Activate
              With oSh.OLEFormat.Object

            .Application.Workbooks(1).Worksheets(1).Cells.Copy
           .Application.Workbooks(1).Worksheets(1).Cells.PasteSpecial Paste:=xlPasteValues


             End With


        ActiveWindow.Selection.Unselect
        ActiveWindow.View.GotoSlide oSl.SlideIndex

    End If

Next
下一个
结束子项

已更新/编辑。。。跳过应用程序更新行,改为尝试这样做:

If oSh.Type = msoEmbeddedOLEObject Then
    With oSh.OLEFormat.Object   ' added .Object here
        .Activate
        .Application.workbooks(1).worksheets(2).Cells.Copy
        .Application.workbooks(1).worksheets(2).Cells.PasteSpecial Paste:=xlPasteValues
    End With
End if

首先,在上面的代码中,将常量lxPasteValues定义为Long=-4163或将xlPasteValues替换为-4163

谢谢@Steve,但我试过了,刚发现“对象不支持属性或方法”错误。我用这一行替换了复制和粘贴行,它可以工作。工作表(1)。范围(“A1:a312”)。值=.Workbook.Worksheets(1)。范围(“A1:a312”)。值抱歉@Steve,但该代码不会打开嵌入的对象,也不会复制或粘贴任何内容。它可能在Excel中工作,但在Powerpoint VBA中不工作。不确定为什么它不适用于您。。。在这里测试了它(在PowerPoint 2010中),它成功了。也许我们有两个不同的对象。我的是excel.sheet.8对象。如果你有2010,我打赌你的是一个excel.sheet.12对象,这两个对象不一样。谢谢你的意见。