我有多个电子表格运行脚本...它自动隐藏包含特定值的行。 目前,这个脚本是设置到凌晨3:00左右每天运行,以确保没有一个活跃于它,而它处理。 这个问题是我现在运行到是这片变得太大而不能使用我当前的脚本,它通过线延伸线。 脚本超时而没有完成。 我猜它仍然运行在已经隐藏了所有行的脚本。
这里是我当前的脚本,这是非常基本的:
function autoHide() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("SHIPPING");
//get data from column
var data = sheet.getRange('AD:AD').getValues();
//iterate over all rows
for(var i=0; i< data.length; i++){
//compare first character, if greater than 0, then hide row
if(data[i][0] > 0){
sheet.hideRows(i+1);
}
}
}
我试图寻找更好的选择时,发现那里的人都在谈论使用数组过滤器,或批量运行,加以解释,这似乎不只是不同的事情足以让我翻译到了我的工作。 我知道,运行此一行行是不是最好的方法,尤其是在1000行和成长。
对于最好的情况下,我想有一个使用我当前的脚本执行处理的分数一个非常有效的脚本。 否则,如果只是运行上是可见的行脚本的方式,这将是几乎一样好。 最坏的情况,如果只是一种方法来告诉它拿起它离开的地方时,它给了超时错误......通过把某些类型的标签或某事知道从哪里开始回升。
我不认为联片是必要的,我只需要能够隐藏在列AD一个大于0,在一个名为“送货”表的任何行。