[英]Insuppressible Error when saving PowerPoint file in Excel VBA
在这被标记为重复之前:它不是,因为所有其他保存错误似乎都有不同的MsgBox
。
我正在编写一个宏,用于从 Excel 中打开和关闭 PowerPoint 演示文稿。 现在我遇到的问题是,当我尝试保存 PowerPoint 文件时,会弹出一个消息框:
它说:“保存文件时出现 PowerPoint 错误。” 我的代码:
Dim pptPres As PowerPoint.Presentation
Dim pptApp As PowerPoint.Application
Set pptApp = New PowerPoint.Application
strPath = "S:\Folderxy\"
strFile = "filename.pptm"
strSave = "newFilename"
Set pptPres = pptApp.Presentations.Open(strPath & strFile, False, True, True)
Application.DisplayAlerts = False
On Error GoTo Errorhandler_tryAgain
tryAgain:
pptApp.DisplayAlerts = ppAlertsNone
strSave = "Test123"
pptPres.SaveAs strPath & strSave & ".pptx"
pptPres.Close
Exit Sub
Errorhandler_tryAgain:
Debug.Print "Errorhandler_tryAgain was opened!"
Application.Wait DateAdd("s", 1, Now) 'delay in seconds
GoTo TryAgain
第一的:
即使我关闭了
DisplayAlerts
,这个还是不断弹出。 但是我不能轻易重现这个错误。 它有时会发生。 打开、关闭和保存*.pptx
文件是循环的一部分,令人惊讶的是,此错误不会在同一个文件中再次出现,而是在包含 70 个 > 文件的循环中再次出现约 2 次。第二:当我手动点击进入
RuntimeError 70: Permission Denied
被抛出。 但是随后 VBE 进入调试模式并且我的 Errorhandler 没有处理它。 Errohandler 是一个不定式循环,因为我将文件保存在服务器上,有时无法保存。 但是,当我手动尝试保存文档(在服务器和桌面上)时,我遇到了相同的“保存文件时出现 PowerPoint 错误”。MsgBox
。
现在我的问题是我如何摆脱保存错误(这似乎是不可能的)或如何抑制该错误,以便我的宏不会在每次发生时停止。 因为我想在一夜之间运行宏。
如果有人以前经历过这样的事情并且可以帮助我,我会很高兴。
提前致谢
遵循这两件事,你应该没问题......
保存时提及文件格式。 例如pptPres.SaveAs strPath & strSave & ".pptx",24 '<~~ ppSaveAsOpenXMLPresentation
。 还要确保strPath & strSave & ".pptx"
是您想要的strPath & strSave & ".pptx"
名称。 否则相应地调整变量。
始终在发出保存(或另存为)语句之后和.Close
语句之前添加DoEvents
,以便 Excel 可以获得足够的时间来完成它的任务。
Application.Wait 暂停所有 Excel 活动,包括执行您的宏。 它对于修复时序问题不是很有用。 当我想增加一点时间以便程序可以完成 I/O 或剪贴板任务时,睡眠是一个更好的选择。 首先添加一个声明:
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
在问题语句之前添加错误捕获,包括在问题之后重置错误处理的语句:
TryCut1:
On Error GoTo TooFast1
objShape.TextFrame2.TextRange.Cut
On Error GoTo -1
然后添加它以进行错误处理。 它等待 10 毫秒,然后再次尝试:
TooFast1:
Sleep 10
Resume TryCut1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.