2017-02-14 124 views
0

我有一个PowerPoint演示文稿,其中有几个Excel图表粘贴为链接。使用VBA,我已经检查过了,这些形状的类型是msoLinkedOLEObjectPowerpoint VBA:链接Excel图表的开放源代码

认识到这一点,我想先打开包含原始图表通过VBA的Excel文件,然后使用图表的“更新链接”命令,就像这样:

enter image description here

祝首先打开工作簿,因为使用“更新链接”命令和打开的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

双方将打开链接的对象,所以你可以对其进行编辑。但请注意,这不足以引用可通过VBA操作的Excel对象。