【问题标题】:PowerPoint VBA to break links in OLEFormat objectPowerPoint VBA 断开 OLEFormat 对象中的链接
【发布时间】:2012-03-30 06:21:38
【问题描述】:

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

将 osL 调暗为幻灯片 将 oSheet 作为对象变暗 将 PPApp 调暗为 PowerPoint.Application Dim PPPres As PowerPoint.Presentation

对于 ActivePresentation.Slides 中的每个 osl 对于 oSl.Shapes 中的每个 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

下一步 结束子

【问题讨论】:

    标签: vba hyperlink powerpoint break


    【解决方案1】:

    更新/编辑...跳过应用程序更新行,改为尝试:

    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 As Long = -4163 或将 xlPasteValues 替换为 -4163。

    【讨论】:

    • 谢谢@Steve,但我试过了,我只是得到“对象不支持属性或方法”错误。
    • 我用这个替换了复制和粘贴行,它可以工作 .Worksheets(1).Range("A1:a312").Value = .Workbook.Worksheets(1).Range("A1 :a312").值
    • 对不起@Steve,但该代码不会打开嵌入对象,也不会复制或粘贴任何内容。它可能适用于 Excel,但不适用于 Powerpoint VBA。
    • 不知道为什么它不适合你......在这里测试了它(在 PowerPoint 2010 中)并且它成功了。
    • 也许我们有两个不同的对象。我的是一个 excel.sheet.8 对象。如果你有 2010,我敢打赌你的是 excel.sheet.12 对象,这两个对象不一样。感谢您的意见。
    猜你喜欢
    • 2012-11-30
    • 1970-01-01
    • 2020-05-06
    • 2012-08-22
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    相关资源
    最近更新 更多