google-apps-script - 限制 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);
解决方案
问题:
您可能使用了一个写得很糟糕的自动迭代数组公式函数,其中公式的最终结果超过了工作表中的单元格数量。该函数将通过插入行自动为结果创建空间。
例子:
- 下面提供了一个自迭代数组公式的简单示例。在“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
.使用健全的数组公式方法:
- 避免:
IF(ROW(A1:A100)=1,"Header",...)
使用:{"Header";...}
- 避免:开放式范围;使用INDEX/COUNTA使用封闭式范围
- 避免:
推荐阅读
- nginx - 没有找到 Nginx 命令,安装成功
- flutter - Flutter Dismissible 在顶部导航时导致不必要的重绘
- html - 如何在另一个“a”标签内使用“a”标签?
- c++ - 如何使用函数对象作为回调来调用对象中的成员函数(处理程序)?
- php - 无法打开流:VariableStream::stream_open
- database - Oracle 数据库配置助手在克隆数据库时挂起 (44%)
- typescript - 如何只接受一个空对象?
- logstash - Logstash 配置修改异常堆栈跟踪
- maven - LDAP 库的 Maven 依赖项无法在 OSGi 中解决
- macos - MacOS 10.12.6 在 Availability.h 中安装 Perl 模块 WWW:Curl::Easy 错误