У меня есть презентация PowerPoint с несколькими таблицами Excel, вставленными как ссылки. Используя VBA, я проверил, и тип этих фигур - msoLinkedOLEObject
.Powerpoint VBA: Open Source of Linked Excel Chart
Зная это, я хотел бы сначала открыть файл Excel, содержащий исходную схему через VBA, а затем использовать «ссылку обновить» команду диаграммы, например:
Я хочу сначала открыть книги, потому что использование команды «update link» с открытым файлом Excel обычно быстрее для меня, чем просто использование команды «ссылка на обновление» (возможно, потому, что некоторые презентации PowerPoint и некоторые книги действительно расширяются).
Для части кода sld.Shapes(i).LinkFormat
я могу использовать .UpdateLinks
, чтобы непосредственно обновлять данные, но я не могу найти способ открыть исходный файл Excel (так же, как я могу, вручную щелкнув на связанной диаграмме).
Возможно ли это?
Sub UpdateExcelLinkedCharts()
Dim pres As Presentation
Dim sld As Slide
Dim shp As Shape
Set pres = Application.ActivePresentation
'Loop through all active slides in the presentation
For Each sld In pres.Slides
If sld.SlideShowTransition.Hidden = msoFalse Then
'If the slide is a msoLinkedOLEObject, proceed to update its link
For i = 1 To sld.Shapes.Count
If sld.Shapes(i).Type = 10 Then
sld.Shapes(i).LinkFormat.UpdateLinks
End If
Next i
End If
Next sld
MsgBox ("All Links Updated!")
End Sub