У меня есть презентация PowerPoint, которая имеет несколько таблиц Excel в качестве объектов. Файлы Excel обновляются один раз в неделю. После обновления файлов Excel мне нужно открыть PowerPoint, дважды щелкнуть по каждому объекту -> меню «Данные» -> «Редактировать ссылки» -> выбрать все источники -> Обновить значения.Macro для обновления объекта Excel в PowerPoint
Я недавно начал использовать VBA в Excel, поэтому задавался вопросом, можно ли написать макрос, который находит все объекты 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
В теории ActivePresentation.UpdateLinks должен это сделать. Вы пробовали это? –
@SteveRindsberg спасибо за совет, я пробовал это, и он только обновляет графики в презентации, которые обновляются в любом случае при открытии презентации. У меня есть фактическая таблица из excel, которую необходимо обновить. Спасибо, Юрий – Yuri
Вы имеете в виду конкретно таблицу Excel (в отличие от кучки ячеек в Excel, которые выглядят как таблица)? Я не уверен, как ведут себя таблицы, но если это связанные ячейки, то обновление ссылок должно работать. Если диапазон ячеек встроен, то нет. Объект Excel должен быть активирован для любых изменений. –