簡體   English   中英

在 Excel VBA 中保存 PowerPoint 文件時出現不可抑制的錯誤

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

現在我的問題是我如何擺脫保存錯誤(這似乎是不可能的)或如何抑制該錯誤,以便我的宏不會在每次發生時停止。 因為我想在一夜之間運行宏。

如果有人以前經歷過這樣的事情並且可以幫助我,我會很高興。

提前致謝

遵循這兩件事,你應該沒問題......

  1. 保存時提及文件格式。 例如pptPres.SaveAs strPath & strSave & ".pptx",24 '<~~ ppSaveAsOpenXMLPresentation 還要確保strPath & strSave & ".pptx"是您想要的strPath & strSave & ".pptx"名稱。 否則相應地調整變量。

  2. 始終在發出保存(或另存為)語句之后和.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM