在excel中,我有一个超过30,000行的工作表。样本数据如下图所示。大约十几个列都有公式,这些公式在我更新单元格时会真正减慢工作速度。我想使用VBA代码关闭仅5列的自动公式计算(请参阅示例中的红色列)。黄色列中的公式将一直运行。然后我想创建一个宏,在按下时计算红色列中的公式。
我尝试在公式功能区中寻找一些选项但是没有成功。
答案 0 :(得分:1)
如果您要创建宏
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculateManual
[YOUR CODE HERE]
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
但是如果您只想启用和禁用..转到菜单(功能区) 公式/计算选项 并选择自动或手动。
答案 1 :(得分:0)
不要关闭几列的计算,最好使用计算资源密集型公式的宏,然后将结果保存为值。如果您只需处理之前未返回结果的内容,您甚至可以只处理空白单元格或#N / A单元格。就在今天,我为我编写的计算成本高昂的FuzzyMatch例程做了同样的事情。
但是,如果您的公式正在执行某些操作,例如通过SUMPRODUCT处理数据或在非常大的数组上执行查找,那么您可以优化它们以便它们在很短的时间内运行,从而完全避免选择性的需要重新计算你的表。如果这些公式是挥发性的 - 或者是挥发性函数的下游 - 那么你可以使用非易失性公式来阻止你的电子表格重新计算。
有关更快的SUMPRODUCT替代方案,请参阅Optimizing Excel formulas - SUMPRODUCT vs SUMIFS/COUNTIFS
上的答案要快得多的查询,请参阅http://dailydoseofexcel.com/archives/2015/04/23/how-much-faster-is-the-double-vlookup-trick/
上的博文有关波动性的更多信息 - 包括如何避免波动 - 请参阅https://chandoo.org/wp/2014/03/03/handle-volatile-functions-like-they-are-dynamite/
上的博客文章如需更多建议,请修改您的帖子,以包含您正在使用的公式的信息,包括公式数量,参考的大小范围以及您尝试使用它们实现的目标。