[英]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.