Обновить объект Excel в PowerPoint

excel powerpoint-vba embedded-object

2478 просмотра

1 ответ

25 Репутация автора

У меня есть презентация PowerPoint, в которой в качестве объектов используются таблицы Excel.

Файлы Excel обновляются раз в неделю. Как только файлы Excel обновляются, я открываю PowerPoint, дважды щелкаю по каждому объекту -> Данные меню -> Редактировать ссылки -> Выбрать все источники -> Обновить значения.

Возможно ли макросу найти объекты Excel в PowerPoint и обновить их?

После поиска в Интернете мне удалось получить следующий код, который приводит меня к шагу двойного щелчка по объекту, но я не знаю, как обновить ссылки.

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
Автор: Yuri Источник Размещён: 18.07.2016 02:11

Ответы (1)


0 плюса

1774 Репутация автора

Этот код работает, но не во всех случаях. Он был написан для 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
Автор: mooseman Размещён: 07.12.2016 07:10
32x32