Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 连续循环/重复导致Excel崩溃(小时/天后)_Vba_Excel_Repeat_Freeze - Fatal编程技术网

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

Vba 连续循环/重复导致Excel崩溃(小时/天后),vba,excel,repeat,freeze,Vba,Excel,Repeat,Freeze,我有一些VBA代码,每15分钟运行一次。这段代码一开始运行正常,但一段时间后(从4小时到5天不等)Excel崩溃 这不是VBA崩溃(带有调试选项),而是Excel冻结并表示应用程序需要重新启动 我是否试图以一种它不是为之设计的方式使用Excel?我应该清除一些内存/缓存来避免这种情况吗?我认为这是由于应用程序的OnTime方法失败所致,不久前我使用Excel工具时遇到了同样的问题,该工具每5分钟从web上抓取一次数据。有时它只是在没有特定日志或错误/警告的情况下崩溃。以下是我实施的变通方法: 1

我有一些VBA代码,每15分钟运行一次。这段代码一开始运行正常,但一段时间后(从4小时到5天不等)Excel崩溃

这不是VBA崩溃(带有调试选项),而是Excel冻结并表示应用程序需要重新启动


我是否试图以一种它不是为之设计的方式使用Excel?我应该清除一些内存/缓存来避免这种情况吗?

我认为这是由于应用程序的OnTime方法失败所致,不久前我使用Excel工具时遇到了同样的问题,该工具每5分钟从web上抓取一次数据。有时它只是在没有特定日志或错误/警告的情况下崩溃。以下是我实施的变通方法:

1) 在工作簿\u 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分钟安排一个任务,包括(完成后,会触发open workbook event宏,以便调用我的过程,执行后,工作簿将关闭,并使用我在上面发布的两行代码保存)

即使这只是我的观点(我无法用技术证据证明),从长远来看,我也不太相信
应用程序;它可以在几分钟内每10秒执行一次小任务,但是当宏应该定期运行并且您希望避免看到每5小时一次Excel进程崩溃时。。。然后,我建议将调度任务分配给Microset工具,而不是Excel应用程序方法

我的经验 -在宏中使用
OnTime
方法的我的Excel在1小时(最小崩溃)到7小时(崩溃前的最大时间)之间崩溃。我被迫在出门前的早上打开一个与家的远程连接并运行它,以确保工作在我上班之前完成。
-我的同一个宏,按照我上面描述的过程,再也不会崩溃了。我相信系统流程比Excel的流程可靠得多(但是,我没有任何证据证明这一点,所以不要把它当作黄金)。

你能发布代码吗?解释可能会有所不同。另外,一些有问题的机器的系统规格。也许可以尝试使用Windows计划的任务来代替。当文件打开时,可以让宏自动运行。