首页 > 解决方案 > 限制 Google 表格中的行数

问题描述

我有一个 google 表格文档,它不断向表格中添加行。由于我针对文档运行的脚本,它极大地减慢了我的文档速度。我只需要大约 100 行,但它会继续增加几百到一千多行。有没有办法用一个硬数字来限制这一点,或者设置一个脚本来自动删除 100 之后的任何行。

这是我正在维护的订单日志。

我曾考虑使用脚本

getMaxRows() - getLastRow() + 25 //for future blank rows.

但是,我无法让它正常运行。我的脚本能力有限。

类似的东西。

var Max = getMaxRows()
var Last = getLastRows()
start = 2;
end = Max-Last+25 

sheet.deleteRows(start, end);

标签: google-apps-scriptgoogle-sheets

解决方案


问题:

您可能使用了一个写得很糟糕的自动迭代数组公式函数,其中公式的最终结果超过了工作表中的单元格数量。该函数将通过插入行自动为结果创建空间。

例子:

  • 下面提供了一个自迭代数组公式的简单示例。在“1000 行”新工作表中,如果您输入此公式,新行将插入总共 50,000 行,但它会因您使用的设备/浏览器而异。

A1:

=ARRAYFORMULA(ROW(A1:A1001))
  • 公式解释:

    • ROW(A1:A1001)创建一个 1 到 1001 的数组并将它们返回到工作表
    • 但是工作表中没有空间
    • 还需要一排
    • 表格在第 1000 行之后自动添加 1 行
    • 但是,如果在 A1000 之后插入一行,ROW(A1:A1001) 中的引用 A1001 自动变为 A1002,因为在 A1:A1001 之间添加了新行。
    • 现在,公式说, =ARRAYFORMULA(ROW(A1:A1002))所以,1002 个数字,所以,我们还需要一个额外的行。添加了一个新行,引用再次更改,再次需要一个新行,依此类推,直到达到 50,000 等硬限制并且您的公式停止迭代并成为#REF错误。

解决方案:

  • 创建工作表的副本并逐个删除每个数组公式,然后每次删除行以固定流氓公式。

  • 注意扩展数组公式,例如使用SPLIT.

  • 使用健全的数组公式方法:


推荐阅读