Google Spreadsheet Script问题-错误:服务超时:Apps脚本

|| 我一直在尝试制作一个快速的Google脚本来为婚礼的邀请响应电子表格计算rsvps。在将新条目添加到电子表格后,该脚本可以完美运行一周,然后突然停止在每个单元格中显示以下错误消息: 错误:服务超时:Apps脚本 脚本本身很简单。它查询相关列(有多个事件),然后检查是否存在用户指定的某些响应-\“ YES \”,\“ NO \”或通常为空白。 此错误是什么意思,有人对修复有任何建议吗?
function sumRSVP(response, rsvpType) {
  var rsvpCol = 7;
  if (rsvpType == \"rehearsal\") rsvpCol = 8;  
  if (rsvpType == \"brunch\") rsvpCol = 9;

  var mySum = 0;

  var sh = SpreadsheetApp.getActiveSheet();
  for( i=2; i<177; i++){

    var rsvp = sh.getRange(i, rsvpCol).getValue();
    var nguests = sh.getRange(i, 6).getValue();
    if(nguests != \"\" && rsvp == response){
      mySum = mySum + parseFloat(nguests);
    }
  }

  return mySum;
}
    
已邀请:
        希望婚礼顺利进行。这个问题是在一段时间前提出的,但在此帖子中已被浏览300多次,我认为这很重要: 不应循环从电子表格中提取数据。所需的数据应批量提取到数组中,并在循环中评估该数组。 请参阅以下文档参考: https://developers.google.com/apps-script/guide_common_tasks#OptimizeScripts   您可以通过最小化读写次数来编写脚本,以最大程度地利用内置缓存。交替进行读写命令很慢。要加速脚本,请使用一个命令将所有数据读入阵列,对阵列中的数据执行任何操作,然后使用一个命令将数据写出。
function sumRSVP(response, rsvpType) {
  var rsvpCol = 7;
  if (rsvpType == \"rehearsal\") rsvpCol = 8;  
  if (rsvpType == \"brunch\") rsvpCol = 9;

  var mySum = 0;

  var sh = SpreadsheetApp.getActiveSheet();
  // start at row 2 - uses columns 6-9
  var data = sh.getRange(2, 6, 177 - 1 , 4).getValues();
  for(var i=0; i<data.length; i++){

    var rsvp = data[i][rsvpCol - 6];
    var nguests = data[i][0];
    if(nguests != \"\" && rsvp == response){
      mySum = mySum + parseFloat(nguests);
    }
  }

  return mySum;
}
    

要回复问题请先登录注册