我使用的是32位Win7的Excel2007。我已经下载了Process Explorer,以获取有关正在运行的进程的更多信息。
如果我在A1 =sum( If (B:J=0,1,0))中放入一个公式,然后按ctl-shift-enter组合键(对于数组),它可以工作,但虚拟内存将达到大约800+ MB。如果我尝试将相同公式放入A2中,我会得到"out of resources“错误。当我收到这个错误时,我看到虚拟内存峰值达到了大约1.2G。我猜它会超过2G(因为这似乎是Excel2007的限制),但Process Explorer显示它的速度不够快。
如果我删除公式,虚拟内存仍然保持在800+ MB左右。我似乎不能减少使用的虚拟内存。如果再次尝试将1个公式放入,我将得到“资源不足”,而现在我甚至不能将这些公式中的1个放入以前可以放入的位置。这就像它没有释放使用的虚拟内存。
我知道Win7 64位和Excel2010 64位有大约8TB的虚拟内存,但是如果虚拟内存没有被释放,看起来就像是内存泄漏。
公式只是一个测试,以了解工作簿中的许多数组公式似乎都受到了这一点的影响。
在这种情况下,除了升级,我还能做些什么?
发布于 2012-02-09 00:31:08
如果您创建一个新的工作簿,并在工作表上使用这些列公式,内存是否会达到峰值?如果列中的任何单元格/所有单元格都被“触动”,Excel会将它们视为空白单元格并在公式中使用它们。如果它们从未被接触过,那么它们就不存在,Excel不应该尝试将它们加载到内存中。
如果你的工作簿很大,你可能会被卡住,尽管有可能重新组织你的公式来处理较小的单元格部分,然后在另一组公式上运行这些结果以获得最终结果。
https://stackoverflow.com/questions/9196159
复制相似问题