2

我正在经历缓慢的变化,而不是更新,链接对象的PowerPoint演示文稿中的链接。示例代码如下:

 For Each sld In ActivePresentation.Slides
    For Each shp In sld.Shapes
       If shp.Type = msoLinkedOLEObject Then 
            Src_Old = Split(shp.LinkFormat.SourceFullName, "!")(0)
            Src_New = Src_Path & "\" & Src_Book_Name
            shp.LinkFormat.SourceFullName = Replace(shp.LinkFormat.SourceFullName, Src_Old, Src_New)
       End If           
    Next shp
Next sld

在每次迭代期间,将重新打开外部源文件并更新链接,这会显着减慢运行速度。所以问题是:

  1. 无论如何强制不更新链接,而只是更改 SourceFullName 的文本?
  2. 即使答案是否定的,是否每次迭代都停止重新打开外部源文件?

提前致谢。

4

2 回答 2

1

我遇到了同样的问题。这个单一的命令行最多需要 16 秒才能执行。将更新方法更改为手动改进为 11 秒。真正解决的是在只读节点中在后台打开参考文件,甚至不向用户显示。降至 0.6 秒。对更新方法也有效。

Dim xlApp As Object
Dim xlWorkBook As Object

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
xlApp.DisplayAlerts = False
 Set xlWorkBook = xlApp.Workbooks.Open(strDBPath, False, True)

完成后不要忘记收拾烂摊子。

xlWorkBook.Close
Set xlWorkBook = Nothing
xlApp.Quit
Set xlApp = Nothing
于 2017-09-01T14:00:18.723 回答
0

在更改 SourceFullName 属性之前,您能否尝试使用此切换到手动更新模式:

shp.LinkFormat.AutoUpdate = ppUpdateOptionManual

然后在需要的时候使用Update方法手动刷新内容:

shp.LinkFormat.Update

您也可以使用 BreakLink 方法,但我不确定这是否是您想要的:

shp.LinkFormat.BreakLink
于 2016-05-24T07:27:04.550 回答