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相关的变量(PowerPointApp
,myPresentation
,PPAmp
声明为Object
,然后使用Set PowerPointApp = CreateObject("PowerPoint.Application")
失败。
编辑:键入PowerPointApp.Presentations.Open(“ Filepath”)给我同样的错误(我认为):“运行时错误'-2147467259(80004005)':自动化错误。未知错误”。