连续循环/重复导致Excel崩溃(小时/天后)

时间:2014-12-03 22:51:33

标签: excel vba excel-vba repeat freeze

我有一些VBA代码连续每15分钟运行一次。此代码最初运行正常,但经过一段时间(从大约4小时到5天不等),Excel崩溃。

这不是VBA崩溃(带有调试选项),但它是Excel冻结并且说应用程序需要重新启动。

我是否尝试以不适合的方式使用Excel?我应该清除一些内存/缓存来避免这种情况吗?

1 个答案:

答案 0 :(得分:1)

我认为这是由于应用程序的 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 )它非常直观且易于使用。我已经按照opening the workbook计划了每5分钟执行一次任务(一旦完成,就会触发open-workbook-event宏,因此我的程序被调用,并且在执行之后,工作簿被关闭并保存为两个我上面发布的代码行)。

即使这只是我的观点(我无法用技术证据证明),我对Application.OnTime长期不太信任;它可以每10秒钟完成一次小任务,持续几分钟,但是当宏应该定期运行并且你想避免看到它时,每5个小时一次,Excel进程崩溃......然后我建议让它将任务调度到Microsot工具而不是Excel应用程序方法。

我的经历 - 我的Excel在宏中使用OnTime方法,在1小时(最小崩溃)和7小时(崩溃前的最长时间)之间崩溃。我被迫在家里打开一个距离连接并在早上出去之前运行它,以确保工作在我上班之前完成。 - 我的相同的宏,按照我上面描述的程序,从不崩溃了。我相信系统过程比Excel更可靠(但同样,我没有任何证据可以证明你这一点,所以不要把它作为金币)。