我正在使用Google电子表格向我的用户发送每周电子邮件,其中包含一些指标数据。我最近收到了这个错误:
Method Range.getValue is heavily used by the script. File: Code Line: 69
这是第69行:
while (marketReportDataSheet.getRange(AGENT_NAME_ROW,currentDataColumn).getValue() != "")
{
createMarketReport(marketReportDataSheet, currentDataColumn);
currentDataColumn += 1;
}
整个脚本的副本:http://pastebin.com/n70iLPsA
电子邮件仍然发送,但错误也在那里。我试图减少使用该方法的次数,但错误仍然存在。我查了一下这个错误,但即使在SO上找不到任何具体的答案。任何解决方案或指向正确方向的人都会非常感激。
答案 0 :(得分:0)
您对GAS中列出的API进行的大多数函数调用 将需要比常规JavaScript更多的时间。在你的情况下,减少 对Range和Sheet类的调用次数
以下是您可以使用的示例代码:
var lastCol = marketReportDataSheet.getDataRange().getLastColumn();
var data = sheet.getRange(AGENT_NAME_ROW,currentDataColumn,1,lastCol).getValues()[0];
for (var i = 0; i < data.length; i++) {
if (data[i] != "" && data[i] != undefined) {
createMarketReport(marketReportDataSheet, i+1);
}
}