工作表卡住正在加载...一个单元格,我必须重新加载

问题描述

tl;dr:我的自定义公式单元格都在加载……它们开始填充结果,但它们卡住了。重新加载会立即提供完整的结果。我不想每次更改值时都重新加载。

在我的工作表中,几乎所有单元格都是相互关联的,因此更改一个单元格会触发重新计算。每一行是一年,每一列在所有行中都是相同的公式。每个单元格可以引用其行中较早的列或前一行中的任何内容,以及一些包含“输入”的绝对位置。更改输入会触发所有内容的重新计算。

带有我的自定义函数的列将进入 Loading...,然后一次一个单元格返回值,每个单元格几乎一秒钟。好吧,慢,但很好。但通常它只是在中途完全停止。有时它会再次启动,但通常不会。

但是所有单元格都重新计算了。我的自定义函数被立即调用并返回值,执行时间通常为 0.125 秒或更短。如果我在浏览器中重新加载,我会立即获得完全重新计算的工作表。我的浏览器中的表格与 Google 服务器之间的某些链接似乎被切断了,因此我无法看到更新。

这是我第一次使用 Apps Script —— 或者 JavaScript —— 但我几十年来一直在用其他方式编程。如果重要的话,自定义函数纯粹是数学的,除了 Math 之外不调用任何服务,甚至没有调用电子表格,在它的参数中获取它需要的一切,在同一个文件中使用几个函数。这是一个详细的税收计算器。

我使用的是最近的 Chromebook。

解决方法

为了避免重新加载电子表格,您很可能必须遵循the guidelines for custom function optimization

总结:不要使用一个公式来计算单个值,而是使用您的公式来计算多个值并将它们作为数组返回。

以上内容将减少公式数量并提高电子表格的性能,但请记住,自定义函数的最长执行时间为 30 秒。

同时减少电子表格中数据范围的大小以及数据范围底部和右侧的空白行和列的数量将有助于提高电子表格的性能。

相关