我试图根据单元格中的值隐藏行。
我使用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分钟的最长时间?
答案 0 :(得分:1)
由于您的脚本使用保留的函数名称onEdit,因此每次编辑时都会触发它,并且每次遍历所有表格行时都会触发它,如果符合条件,它会隐藏该行,即使它是&#39;已经隐藏了。
更改脚本以检查当前编辑的单元格,在编辑事件对象上使用en,并且仅在满足条件时隐藏当前行。如下所示:
function onEdit(e){
if(e.range.getColumn() === 30 && e.value === 'Yes'){
e.range.getSheet().hideRows(e.range.getRow())
}
}
注意:我还没有测试过。