新手程序员在这里。我有一个代码从服务器复制了12小时的数据并将其显示在excel中。我的代码获取显示的代码并将其导出到一个文件中,每12小时添加一次,这样我就可以拥有数月的数据。VBA:内存不足错误,由于内存泄漏....我可以手动调用垃圾收集?
我的问题是,20天左右后,我用完了内存。从理论上讲,它不应该比原始程序占用更多的数据,并且在20天之后内存用完会告诉我内存泄漏。在一个老的java程序中,我只是用一些频率调用垃圾收集器,问题就消失了。有没有办法在excel-vba中做到这一点?我已经读过有关将变量设置为无效的内容,但我有很多变量,我认为真正的问题与它将所有读入数据存储为ram有关,而且我不知道如何将其设置为零。
其他奇怪的位 - 在它因内存崩溃后,我无法再关闭excel而再次启动程序。所以崩溃后它不会删除内存中的东西?
感谢所有帮助
对不起,感谢您的帮助,JMax。我二十天的含义是,我一次只能复制12小时的数据,20天之后数据或系统崩溃。这是没有意义的,因为我在复制剩余的数据之前删除了12小时的数据。所以每次迭代都不应该使用比我看来的最后一次更多的内存。但大约40个周期后,我的记忆力消失了。 感谢您的任何帮助 –
要清楚它运行约45分钟左右才会崩溃。 –
然后,没有*相关*代码,我看不出我们如何能够帮助你。为了在每次运行中抓取10天左右的数据,您应该更多地分割代码。顺便说一句,内存问题可能来自其他地方,你应该告诉我们什么是你遇到的错误(正如Issun指出的那样) – JMax