Google apps 谷歌电子表格脚本问题-错误:服务超时:应用程序脚本

Google apps 谷歌电子表格脚本问题-错误:服务超时:应用程序脚本,google-apps,google-apps-script,Google Apps,Google Apps Script,我一直在尝试快速编写一个google脚本,为婚礼邀请响应电子表格计算RSVP。当新条目添加到电子表格中时,脚本完美地工作了一周,然后突然停止工作,每个单元格中出现以下错误消息: 错误:服务超时:应用程序脚本 脚本本身很简单。它查询相关列(有多个事件),然后检查是否有用户指定的响应——“是”、“否”,或者通常为空白 这个错误意味着什么,有人对修复有什么建议吗 function sumRSVP(response, rsvpType) { var rsvpCol = 7; if (rsvpTy

我一直在尝试快速编写一个google脚本,为婚礼邀请响应电子表格计算RSVP。当新条目添加到电子表格中时,脚本完美地工作了一周,然后突然停止工作,每个单元格中出现以下错误消息:

错误:服务超时:应用程序脚本

脚本本身很简单。它查询相关列(有多个事件),然后检查是否有用户指定的响应——“是”、“否”,或者通常为空白

这个错误意味着什么,有人对修复有什么建议吗

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;
}
函数sumRSVP(响应,rsvpType){
var-rsvpCol=7;
如果(rsvpType==“排练”)rsvpCol=8;
如果(rsvpType==“早午餐”)rsvpCol=9;
var mySum=0;
var sh=SpreadsheetApp.getActiveSheet();

对于(i=2;i希望婚礼进展顺利。这是一段时间前提出的问题,但在本帖中已被浏览了300多次,我认为这很重要:

数据不应从循环中的电子表格中提取。。所需数据应批量提取到数组中,并在循环中对数组进行评估

见以下文档参考:

通过最小化读写次数,您可以编写脚本以最大限度地利用内置缓存。交替使用读写命令速度较慢。要加快脚本速度,请使用一个命令将所有数据读取到数组中,对数组中的数据执行任何操作,然后使用一个命令将数据写出

函数sumRSVP(响应,rsvpType){
var-rsvpCol=7;
如果(rsvpType==“排练”)rsvpCol=8;
如果(rsvpType==“早午餐”)rsvpCol=9;
var mySum=0;
var sh=SpreadsheetApp.getActiveSheet();
//从第2行开始-使用第6-9列
var data=sh.getRange(2,6177-1,4).getValues();

对于(var i=0;i希望婚礼进行得很顺利。这是一段时间前提出的问题,但在本帖中已被浏览了300多次,我认为这很重要:

数据不应从循环中的电子表格中提取。。所需数据应批量提取到数组中,并在循环中对数组进行评估

见以下文档参考:

通过最小化读写次数,您可以编写脚本以最大限度地利用内置缓存。交替使用读写命令速度较慢。要加快脚本速度,请使用一个命令将所有数据读取到数组中,对数组中的数据执行任何操作,然后使用一个命令将数据写出

函数sumRSVP(响应,rsvpType){
var-rsvpCol=7;
如果(rsvpType==“排练”)rsvpCol=8;
如果(rsvpType==“早午餐”)rsvpCol=9;
var mySum=0;
var sh=SpreadsheetApp.getActiveSheet();
//从第2行开始-使用第6-9列
var data=sh.getRange(2,6177-1,4).getValues();

对于(var i=0;i你能提供调用此函数的代码吗?有时会出现一些超时错误,最好的做法是等待几分钟再试一次。你能提供调用此函数的代码吗?有时会出现一些超时错误,最好的做法是等待几分钟再试一次N
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;
}