限制Google表格中的行数

时间:2019-02-13 18:43:23

标签: google-apps-script google-sheets

我有一个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);

1 个答案:

答案 0 :(得分:0)

问题:

您可能正在使用写得不好的自动迭代数组公式函数,该公式的最终结果大于工作表中单元格的数量。该函数将通过插入行自动为结果创建空间。

示例:

    下面提供一个自迭代数组公式的简单示例。在“ 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的数组公式。

  • 使用理智的arrayformula方法:

    • 避免:IF(ROW(A1:A100)=1,"Header",...)使用:{"Header";...}
    • 避免:开放式范围;使用INDEX/COUNTA
    • 使用封闭范围