Excel VBA“内存不足”debugging技术

我正在debugging其他几个*问题中提到的问题,并在debugging过程中注意到一个奇怪的行为。

行为:粘贴复杂公式时遇到“内存不足”错误。 在迭代的20,000行中,只有大约一半在错误之前粘贴公式。 几乎所有的代码注释掉了,错误消失了。 为了发现导致它的代码的特定部分,增量地取消注释代码。 最后取消注释所有的代码,并停止体验错误!

这意味着完全相同的代码在同一个Excel实例中工作正常,并且修复它只需要在返回到原始版本之前运行各种较轻版本的代码。 什么可能导致这个?

假设您每次运行的数据都完全相同,听起来更像是您的环境问题 – 问题可能是操作系统内存不足。 在Excel 2007中,公式和数据透视表caching的可用内存已增加到2千兆字节(GB),所以这可能不是问题。 但是,当然也受限于当时操作系统有多less内存。

这个问题可能发生了,因为当你第一次testing时,你的可用操作系统内存比运行扫描的后台程序(从运行扫描的其他进程…甚至可能超过限制)以后的完整的macros。 我会尝试运行你的macros与任务pipe理器打开,看看你是否得到任何接近物理内存低。 此外,(假设您使用的是Excel 2007或更高版本)查看Excel使用了多less内存,然后查看是否有任何接近2GB的限制。 我怀疑这是否会成为问题,但至less值得双重检查。 另外,就像Zairja说的那样,确保你在开始时将计算设置为手动。

你说你正在使用复杂的公式…查阅这篇文章“ 提高Excel的性能”

文章中有很多有用的信息可能会帮助您简化macros观。

这对你有帮助吗?