Excel 在尝试计算一个或多个公式时耗尽资源

标签 excel excel-2013 vba

我有一本工作簿可以对我的开支进行“智能”图表。它已经运行了一年,现在有很多图表和费用。现在,每当我更改任何内容或打开工作簿时,Excel 都会引发资源不足错误。问题是,我有很多资源,但几乎没有使用它们。

Win8 64bit w/ 8 core CPU and 32GB of ram
Office 2013 64bit

我有 2 个工作表,第一个名为“费用”的工作表有 3 列 [日期、说明、金额] 和大约 1500 行数据。第二张表有很多(500 个左右)的公式,它们都是相同的,目的是“对日期 X 和 Y 之间的所有费用进行求和,其中描述匹配 - 一些针 -”。我的公式是这样的:

=
ABS(
    SUMPRODUCT(
        --(Expenses!A:A >= DATE(2011,12,1)), 
        --(Expenses!A:A < DATE(2012,1,1)), 
        --(ISNUMBER(FIND(C50,Expenses!B:B))),
        Expenses!C:C
    )
)

我可以为 Excel 提供更多资源吗? (我很高兴它能使用我所有的内存,并让我的 CPU 运行几分钟)。

是否有更有效的方法可以执行此公式?

我知道这个公式正在创建一个大网格并用它掩盖我的费用列表,并且对于每个公式都必须创建这个网格。我应该创建一个宏来更有效地完成此操作吗?如果我有一个宏,我想从单元格中调用它,就像

=sumExpenses(<startDate>, <endDate>, <needle>)

这可能吗?

谢谢。

最佳答案

我遇到了类似的问题,其中大约 150 行有一些数组公式,并且出现了此错误,这确实让我感到困惑,因为实际上没有那么多公式需要计算。我联系了我们的 IT 人员,他解释了以下内容,其中一些我理解,大部分我不明白:

通常,当计算机尝试处理大量数据时,它会使用多线程计算,即使用计算机欺骗自己认为自己拥有的所有 8 个处理器。当多线程计算关闭时,计算机不会抛出“Excel 资源不足...”错误。

要关闭多线程计算,请转到 Excel 工作簿中的"file"选项卡,然后选择“选项”。在出现的框的右侧,选择“高级”并向下滚动到标题“公式”。该标题下有一个复选框,显示“启用多线程计算”。取消选中它,然后选择“确定”并重新计算公式。

关于Excel 在尝试计算一个或多个公式时耗尽资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15329199/

相关文章:

excel - 将过滤字段从一张表复制到另一张表而不激活

vba - Excel 2013 VBA Web Query 连接字符串包含变量

c# - 相同的 Excel 公式在 Visual Studio C# 中返回不同的结果

excel - VBA遍历表

vba - 运行时错误 13 : Type mismatch

vba - 如何遍历所有子窗体 MS Access VBA

vba - 从一个文件调用另一个文件中的用户窗体

vba - 在 VBA 中对多个键进行排序;运行时错误 450 : Wrong number of arguments or invalid property assignment

powershell - 自动化Windows 7轻松访问设置 “Turn off unnecessary animations”

excel - 使用 For 调用数组中的子对象