所以我遇到了一个新问题。
到目前为止,我的脚本可以循环工作表并找到文本“Bank”,它会将背景颜色设置为红色,它将从另一个单元格中取出标记的值并记录下来。一旦它完成了它会崩溃,所以循环会破坏,我不知道为什么?
function sortBank() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[8].indexOf('Bank') > -1) { /** Set the Job prefix **/
sheet.getRange(parseInt(i)+1,9).setBackgroundColor("#f44336");
var values = sheet.getRange(parseInt(i),2).getValues();
Logger.log(values[0][0]);
}
}
};
答案 0 :(得分:1)
您可以查看类似的问题:
Google Script - Internal Error after 15 seconds
Google script - Exceeded maximum execution time , help optimize
Google sheet script, times out. Need a new way or flip it upside down
基本解决方案是使用getValues()
一次,然后在2d数组中循环值:
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var data = rows.getValues();
for (var i = 0; i < numRows; i++)
{
var j = SomeValue; // column number - 1
var row = data[i]; // row from origonal data range
var value = row[j]; // value from data
// some other code...
}
查看有关您的问题的更多信息here:
如果您可以找到最小化的方法,您的脚本将运行得更快 调用脚本对这些服务进行调用。