【问题标题】:New drive mapping for powerpoint linked objects - VBA solutionPowerPoint 链接对象的新驱动器映射 - VBA 解决方案
【发布时间】:2019-10-30 20:00:47
【问题描述】:

PowerPoint 中的所有链接对象(链接到 excel)不再被识别,因为 IT 已将服务器迁移到新路径并关闭了旧路径。

我曾尝试使用 (https://exceloffthegrid.com/edit-links-in-powerpoint-using-vba/) 中的宏,但由于旧服务器不再运行,当宏尝试打开旧文件路径时,会出错

有其他解决方案吗?


Sub EditPowerPointLinks()

Dim oldFilePath As String
Dim newFilePath As String
Dim pptPresentation As Presentation
Dim pptSlide As Slide
Dim pptShape As Shape

'The old file path as a string (the text to be replaced)
oldFilePath = "String of\File Path\To Be Replaced\Excel File.xlsx"

'The new file path as a string (the text to replace with)
newFilePath = "String of\New File Path\Excel File 2.xlsx"

'Set the variable to the PowerPoint Presentation
Set pptPresentation = ActivePresentation

'Loop through each slide in the presentation
For Each pptSlide In pptPresentation.Slides

    'Loop through each shape in each slide
    For Each pptShape In pptSlide.Shapes

        'Find out if the shape is a linked object or a linked picture
        If pptShape.Type = msoLinkedPicture Or pptShape.Type _ 
        = msoLinkedOLEObject Then

            'Use Replace to change the oldFilePath to the newFilePath
            pptShape.LinkFormat.SourceFullName = Replace(LCase _
            (pptShape.LinkFormat.SourceFullName), LCase(oldFilePath), newFilePath)

        End If
    Next
Next

'Update the links
pptPresentation.UpdateLinks


End Sub

【问题讨论】:

  • 你得到什么样的错误,在哪里?做了一个快速测试,对我来说代码没问题,没有错误
  • 运行时错误“-2147467259 (80004005)”:LinkFormat(未知成员):失败。

标签: excel vba powerpoint


【解决方案1】:

你的代码没问题,我也测试过了。

新链接的设置由应用程序处理不同:

  • 如果为链接图片设置新的SourceFullName (Shape.Type = msoLinkedPicture),
    应用程序接受任何内容作为链接,并且代码不会引发错误。
  • 如果您尝试为链接的 OLE 对象 (Shape.Type = msoLinkedOLEObject) 设置新的 SourceFullName,应用程序会立即测试新文件是否真的存在。
    如果链接的 OLE 对象不存在,您将收到错误消息。

结果:您必须确保新路径指向现有文件(并且您需要适当的访问权限)。

【讨论】:

  • 您能否确认您的代码运行时没有错误,何时可以访问该文件?我的回答有帮助吗?如果是,请将其标记为答案,如here 所述。如果没有,请不要犹豫,在下面发表评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多