LinkFormat.Update

时间:2016-07-28 20:35:28

标签: excel vba powerpoint

我有一个PowerPoint演示文稿,其中包含来自Excel和多个文件的多个图表和链接工作表对象。我正在使用下面的代码更新演示文稿中的所有图表/对象,因为它们每天都在变化。该代码适用于该工作;然而,在它运行后我留下了几个"打开" excel文件不可见。我知道它们打开的唯一方法是,如果我打开作为单独的excel文件并关闭它,我将被问到是否要保存用于更新我的PowerPoint的所有其他文件。如何确保用于更新演示文稿的每个文件都已关闭(不保存)?我知道如何通过放入文件路径在代码中逐个关闭每个文档,但如果可能的话,我想要一种适用于任何新图表/对象的方法,因此代码不需要更新。

Sub updatelinks()
Dim sld As Slide, shp As Shape

For Each sld In ActivePresentation.Slides
    For Each shp In sld.Shapes
        On Error Resume Next
        shp.LinkFormat.Update
    Next
Next
MsgBox "All Charts Updated"
End Sub

提前感谢您的帮助,顺便说一句,我是新手,对任何可以使我的原始代码更好的建议持开放态度。另外,如果重要的话,我正在使用Office 365.

谢谢, 克里斯

1 个答案:

答案 0 :(得分:0)

你说你知道如何用文件路径关闭excel文件所以我不会厌烦你这些细节,但是你可以获得用shp.LinkFormat.SourceFullName更新的excel文件的文件路径,这样你就可以使用了在你的循环中,在每次更新后关闭它们。