VBA:从Excel打开PowerPoint演示文稿:错误“对象“演示文稿”的方法“打开”失败。”

时间:2019-05-21 10:50:30

标签: excel vba powerpoint

edit2 :我认为我已经确定了问题:另一个用户打开了文件,但是当我手动打开文件时,他必须已经关闭了文件。现在,我想知道如何避免此问题,因为我不会使宏失败,更不用说带有一些神秘错误消息了。我会对只读感到满意,但显然它没有给我这种选择。默认情况下,我是否必须将每个文件打开为只读状态才能不再遇到此问题?

我一直在处理一些代码,突然之间,一条非常基本的行向我显示一条错误消息:“运行时错误-2147467529(80004005):对象'Presentations'的方法'Open'失败。我重新创建了这段代码中的问题:

Dim PowerPointApp As PowerPoint.Application
Dim myPresentation As PowerPoint.Presentation

Sub MReport()

    Dim DestinationTemplate As String, DestinationAmp As String
    Dim PPAmp As PowerPoint.Presentation
    Dim AmpName As String, PathAmp As String

    DestinationTemplate = "G:\MReport\MReportTemplate.pptm"
    PathAmp = "G:\MReport\Amp\MReportAmp\"
    AmpName = Dir(PathAmp & "Amp*long*.*")

    DestinationAmp = PathAmp & AmpName
    Debug.Print DestinationAmp

    Set PowerPointApp = New PowerPoint.Application
    Set myPresentation = PowerPointApp.Presentations.Open(DestinationTemplate) 'works
    Application.DisplayAlerts = False 'doesn't help
    Set PPAmp = PowerPointApp.Presentations.Open(DestinationAmp) '<-- error
    Application.DisplayAlerts = True

End Sub

错误在行Set PPAmp = PowerPointApp.Presentations.Open(DestinationAmp)中发生。实际上,它曾经工作过数十次。然后,我重新排列了一些与此PowerPoint文件无关的代码,并将其转移到单独的过程中,并发生了错误。该错误现在发生在重新安排的新文件和旧文件中,该文件成功运行了几天。

我尝试重新启动计算机,还检查了MS PowerPoint 16.0对象库。 Debug.Print语句为我提供了正确的路径,我可以将其复制到文件资源管理器中,然后打开正确的演示文稿。

代码是用Excel编写的,但是当我将其复制到PowerPoint中时,出现了相同的错误。我还尝试将所有与PowerPoint相关的变量(PowerPointAppmyPresentationPPAmp声明为Object,然后使用Set PowerPointApp = CreateObject("PowerPoint.Application")失败。

编辑:键入PowerPointApp.Presentations.Open(“ Filepath”)给我同样的错误(我认为):“运行时错误'-2147467259(80004005)':自动化错误。未知错误”。

0 个答案:

没有答案