2017-02-14 21 views
0

У меня есть презентация PowerPoint с несколькими таблицами Excel, вставленными как ссылки. Используя VBA, я проверил, и тип этих фигур - msoLinkedOLEObject.Powerpoint VBA: Open Source of Linked Excel Chart

Зная это, я хотел бы сначала открыть файл Excel, содержащий исходную схему через VBA, а затем использовать «ссылку обновить» команду диаграммы, например:

enter image description here

Я хочу сначала открыть книги, потому что использование команды «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 

ответ

2

Вы можете использовать

sld.Shapes(i).OLEFormat.Activate 

Или

sld.Shapes(i).OLEFormat.DoVerb 

следуют sld.Shapes(i).LinkFormat.Update

Оба будут открыть связанный объект, так что вы можете редактировать его. Но обратите внимание, что этого недостаточно, чтобы иметь ссылку на объект Excel, с которым вы можете манипулировать через VBA.

 Смежные вопросы

  • Нет связанных вопросов^_^