【问题标题】:Update Excel object in PowerPoint在 PowerPoint 中更新 Excel 对象
【发布时间】:2016-07-18 14:11:59
【问题描述】:

我有一个 PowerPoint 演示文稿,其中包含 Excel 表格作为对象。

Excel 文件每周更新一次。更新 Excel 文件后,我打开 PowerPoint,双击每个对象 -> 菜单数据 -> 编辑链接 -> 选择所有源 -> 更新值。

宏是否可以在 PowerPoint 中找到 Excel 对象并对其进行更新?

在网上搜索后,我设法获得了以下代码,这使我进入了双击对象的步骤,但我不知道如何更新链接。

Sub update_objects()

    Dim it As String
    Dim i As Integer
    For i = 1 To ActiveWindow.Selection.SlideRange.Shapes.Count
        With ActiveWindow.Selection.SlideRange.Shapes(i)
            If .Type = msoEmbeddedOLEObject Then
                ActiveWindow.Selection.SlideRange.Shapes(i).Select.OLEFormat.DoVerb
            End If
        End With
    Next i
End Sub

【问题讨论】:

  • 理论上,ActivePresentation.UpdateLinks 应该这样做。你试过吗?
  • @SteveRindsberg 感谢您的建议,我已经尝试过了,它只会更新演示文稿中的图表,当演示文稿打开时无论如何都会更新。我所拥有的是需要更新的来自 excel 的实际表格。谢谢,尤里
  • 您是指专门的 Excel 表格(而不是 Excel 中恰好看起来像表格的一堆单元格)?我不确定表格的行为方式,但如果它是链接单元格,那么更新链接应该可以工作。如果单元格范围是嵌入的,那​​么没有。必须激活 Excel 对象才能进行任何更改。
  • @SteveRindsberg 感谢您的回复,很抱歉造成混淆。它是一组通过公式链接到每周更新的其他电子表格的单元格。这些细胞是嵌入的。我试过从文件中插入对象并链接它,但我得到的问题是一张excel表有几个表(单元格),我一次只需要显示一个表,但链接的对象显示该表上的所有数据.使用嵌入式对象,我可以调整它的大小,使其仅显示工作表的某些部分。我以前没有使用过链接对象,所以需要阅读更多关于如何使用它们的信息。谢谢
  • 而不是使用插入 | PPT 中的对象,从 Excel 开始。选择要链接的单元格,右键单击,复制然后转到 PPT 并选择选择性粘贴 |在链接旁边打勾,然后选择 Excel 工作表对象(或类似的东西)。

标签: excel vba powerpoint embedded-object


【解决方案1】:

此代码有效,但并非在所有情况下都有效。它是为 2010 年写的。 根据需要更改类型。 7 是 Excel 嵌入对象。

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Sub open_and_close_all_objects()
    'This will open and then close all charts and graphs in the presentation to allow them to keep the data
    'Why this is needed is a question to be answered in the future.


    Dim oSH As Shape
    Dim oSl As Slide
    Dim oSheet As Object


    For Each oSl In ActivePresentation.Slides
        For Each oSH In oSl.Shapes

        ActiveWindow.View.GotoSlide oSl.Slideindex
             If oSH.Type = 7 Then
                oSH.Select
                oSH.OLEFormat.Activate

                Call Sleep(1500)

                ActiveWindow.Selection.Unselect
                ActiveWindow.View.GotoSlide oSl.Slideindex
            End If

        Next


     Next
     End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多