【问题标题】:Breaking Links to Excel for PowerPoint Charts断开指向 Excel for PowerPoint 图表的链接
【发布时间】:2020-08-17 21:44:33
【问题描述】:

我编写了一个代码来断开指向我的 powerpoint 面板的源 excel 文件的链接,该宏运行良好,除了 2 个图表。两个图表都在同一张幻灯片上(这并不罕见)并且是折线图。图表需要手动更新,但数据仅驻留在 Excel 文件中。不知道我错过了什么。这是我写的代码

Sub SavePPT()

Dim objPP As Object
Dim objPPFile As Object
Dim sld As Object
Dim shp As Object
Dim shp1 As Chart
Dim newshp As Shape
Dim pptChart As Object

Set objPP = CreateObject("PowerPoint.Application")
objPP.Visible = True

Set objPPFile = objPP.ActivePresentation
objPPFile.Save

Application.EnableEvents = False
For Each sld In objPPFile.Slides
For Each shp In sld.Shapes
If shp.HasChart Then
shp.LinkFormat.BreakLink
On Error GoTo 0
End If
Next
Next

Application.EnableEvents = False
For Each sld In objPPFile.Slides
For Each shp In sld.Shapes
If shp.Type = msoLinkedOLEObject Or shp.Type = msoEmbeddedOLEObject Then
shp.LinkFormat.BreakLink
On Error GoTo 0
End If
Next
Next


objPPFile.SaveAs ("Location" _ & Format(Now(), "MM-DD-YYYY") & ".pptx")
                                                                    
objPPFile.Close
objPP.Quit

Set pptChart = Nothing
Set objPPFile = Nothing
Set objPP = Nothing

End Sub

【问题讨论】:

    标签: hyperlink powerpoint break


    【解决方案1】:

    图表可能位于占位符中,在这种情况下,您的任何代码都不会对其进行操作。如果形状的 .Type = msoPlaceholder(即 14),请检查形状的 .PlaceholderFormat.ContainedType 属性以查看它是linkedOleobject 还是.HasChart 等。

    顺便说一句,msoEmbeddedOLEObject 不会有要调用的 .LinkFormat 对象;我怀疑您有一些错误处理代码掩盖了那里的错误。在任何情况下,我都会将该检查限制为 msoLinkedOLEObject。

    【讨论】:

      【解决方案2】:

      感谢您的帮助。后来我意识到这两张幻灯片上有很多文本框,当我合并其中一些文本框时,问题就解决了。

      【讨论】:

        猜你喜欢
        • 2012-11-30
        • 1970-01-01
        • 1970-01-01
        • 2020-05-06
        • 1970-01-01
        • 2018-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多