所以我对Google Apps脚本有这个问题。它超时是因为应用服务器请求耗时太长。我只是想知道我的编码是否可以清理一下以便更快地运行,还是有另一种方法可以工作?
以下代码:
for (var y = 1; y < listLast ; y++) {
var matchor = listSheet.getRange("B" + y).getValue();
var listEmCo = listSheet.getRange("A" + y).getValue();
if(matchor == "Match") {
Logger.log("Do Nothing");
} else {
for (var x = 0; x < formLast; x++) {
if(listEmCo == formData[x]){
listSheet.getRange("B"+ [y]).setValue("Match");
break;
} else {
listSheet.getRange("B"+ [y]).setValue("No Match");
}
}
}
}
感谢您的回复:)
答案 0 :(得分:3)
不要在循环中使用.getValue();
。这个操作很重。
请使用range.getValues()
然后循环数组以获取值。
计划是:
range
var data = range.getValues();
array = [];
[["value1"], ["value2"], ...,]
。 注意。它应该是2D数组。rangeTo
rangeTo.setValues(array);
粘贴新值。查看更多:
查看有关主题的更多问题:
http://stackoverflow.com/questions/39859421/google-script-internal-error-after-15-seconds
http://stackoverflow.com/questions/44021567/google-sheet-script-multiple-getrange-looping