我有一些VBA代碼每15分鐘持續運行一次。此代碼首先運行良好,但經過一段時間(大約4小時到5天不等),Excel崩潰。連續循環/重複導致Excel崩潰(小時/天后)
它不是一個VBA崩潰(帶調試選項),但它是Excel凍結,並說應用程序需要重新啓動。
我想以某種不適合使用Excel的方式使用Excel嗎?我應該清除一些內存/緩存,以避免這種情況?
我有一些VBA代碼每15分鐘持續運行一次。此代碼首先運行良好,但經過一段時間(大約4小時到5天不等),Excel崩潰。連續循環/重複導致Excel崩潰(小時/天后)
它不是一個VBA崩潰(帶調試選項),但它是Excel凍結,並說應用程序需要重新啓動。
我想以某種不適合使用Excel的方式使用Excel嗎?我應該清除一些內存/緩存,以避免這種情況?
我認爲這是由於OnTime失敗的應用程序的方法,我有一個同樣的問題,前一段時間用Excel工具,每隔5分鐘從網上抓取數據。有時它只是墜毀,沒有特定的日誌或錯誤/警告。這裏是我已經實現瞭解決方法:
1)在Workbook_Open事件我已經把:
myMacro 'the call to my procedure when the workbook is opened
ThisWorkbook.Save 'I was saving the results, I don't know if you need this
ThisWorkbook.Close 'I was closing my Workbook
2)在Windows系統中,我使用的工具(與系統通常安裝)稱爲任務計劃程序,其可執行文件位於系統文件夾(C:\ Windows \ System32 \ taskschd.msc)中,它非常直觀且易於使用。我已經每5分鐘安排一次任務,這個任務包括opening the workbook(一旦完成,open-workbook-event宏被觸發,所以我的過程被調用,並且在它執行之後,工作簿被關閉並且用兩行代碼I已經在上面發佈了你)。
即使這只是我的看法(我無法用技術證據證明),我並不太信任長期的Application.OnTime
;它對於每10秒鐘的一個小任務工作正常幾分鐘,但是當宏應該定期運行,並且你想避免看到那個,每5個小時一次,Excel進程崩潰...那麼我會建議讓將任務安排到Microsot工具而不是Excel應用程序方法。
我的經驗 - 我的Excel中,與在宏中OnTime
方法中,在1小時(最小崩潰)和7小時(時間最大長度崩潰之前)之間的時間段被崩潰。我不得不在早上開始遠程連接並在早上運行,以確保在我工作之前完成工作。 - 我的相同宏,與我上面描述的程序,從來沒有墜毀了。我相信系統過程比Excel更可靠(但是我再也沒有證據證明這一點,所以不要把它當作黃金)。
你可以發佈代碼嗎?解釋可能會有所不同。此外,有關該機器的一些系統規格。 – peege 2014-12-03 22:58:02
也許嘗試使用Windows計劃任務。打開文件時,可以讓宏自動運行。 – 2014-12-03 23:12:56