【发布时间】:2018-06-01 16:42:27
【问题描述】:
我正在尝试根据单元格中的值隐藏行。
我使用 Google 表格作为商品的库存。在最后一列,如果我将其标记为“是”,我希望隐藏整行。
该代码适用于模板表,但当我尝试在我的主库存上激活它时,它显示“超过最大执行时间”,我认为这是发生的,因为它是一个相当大的库存。
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow();
for( i=1 ; i<=lastRow ; i++) { // i <= lastRow
var status = sheet.getRange("AD"+i).getValue();
if (status == "Yes") {
sheet.hideRows(i);
}
}
}
我确实看到,您可以在触发器上将其设置为时间驱动。
如何使代码不超过 5 分钟的最长时间?
【问题讨论】:
-
您的代码永远占用的原因是您为每一行调用电子表格服务方法,即terribly slow。根据 Apps 脚本"best practices",尽可能使用批处理方法。
标签: google-apps-script google-sheets