Google apps script 奇怪的服务器错误气体

Google apps script 奇怪的服务器错误气体,google-apps-script,Google Apps Script,我有一个在谷歌脚本中运行的函数。但是它没有完成,它进入主循环,然后在某个地方停止,没有错误。如果我查看执行说明,它会显示服务器错误,请稍等片刻,然后重试。 我试着运行了好几次,但它一直处于停滞状态,但每次I和j的最后值都与前一次的停滞不同。 我真的无法想象这是一个真正的服务器错误,它一定是代码 function start() { var sheet1 = SpreadsheetApp.openByUrl("xx").getSheetByName('Blad1'); var sheet

我有一个在谷歌脚本中运行的函数。但是它没有完成,它进入主循环,然后在某个地方停止,没有错误。如果我查看执行说明,它会显示服务器错误,请稍等片刻,然后重试。 我试着运行了好几次,但它一直处于停滞状态,但每次I和j的最后值都与前一次的停滞不同。 我真的无法想象这是一个真正的服务器错误,它一定是代码

 function start() {
  var sheet1 = SpreadsheetApp.openByUrl("xx").getSheetByName('Blad1');
  var sheet2 = SpreadsheetApp.openByUrl("xx").getSheetByName('Blad1');
  var range1 = sheet1.getRange(1,1,54,26); 
  var range2 = sheet2.getRange(1,1,10,7); 
  var teller = 0;

  for(var i = 1; i<=range1.getNumRows(); i++){
    for(var j = 1; j<=range2.getNumRows(); j++){
      Logger.log(i);
      Logger.log(j);
      if(range1.getCell(i, 8).getValue() == range2.getCell(j, 2).getValue() && range1.getCell(i, 16).getValue() == range2.getCell(j, 4).getValue() && range1.getCell(i, 19).getValue() == range2.getCell(j, 6).getValue()){
        range1.getCell(i,25).setValue(range2.getCell(j, 7).getValue());
        range2.getCell(j,1).setValue("Script")
        teller++;
      }
    }
  }
  Logger.log(teller);

};
函数开始(){
var sheet1=SpreadsheetApp.openByUrl(“xx”).getSheetByName(“Blad1”);
var sheet2=SpreadsheetApp.openByUrl(“xx”).getSheetByName(“Blad1”);
var range1=sheet1.getRange(1,1,54,26);
var range2=sheet2.getRange(1,1,10,7);
var-teller=0;

对于(var i=1;i我认为您对SpreadsheetApp api的使用太多了。最佳做法是将所需的数据加载到脚本中并对其进行迭代。以您的脚本为例:

function start() {
  var sheet1 = SpreadsheetApp.openByUrl("xx").getSheetByName('Blad1');
  var sheet2 = SpreadsheetApp.openByUrl("xx").getSheetByName('Blad1');
  var range1 = sheet1.getRange(1,1,54,26); 
  var range2 = sheet2.getRange(1,1,10,7); 
  var data1 = range1.getValues();
  var data2 = range2.getValues();
  var teller = 0;

  for(var i = 0, r = data1.length; i < r; i++){
    for(var j = 1, c = data2.length; j < c; j++){
      Logger.log(i);
      Logger.log(j);
      if(data1[i, 8] == data2[j, 2] && data1[i, 16] == data2[j, 4] && data1[i, 19] == data2[j, 6]){
        range1.getCell(i,25).setValue(data2[j, 7]);
        range2.getCell(j,1).setValue("Script")
        teller++;
      }
    }
  }
  Logger.log(teller);
};
函数开始(){
var sheet1=SpreadsheetApp.openByUrl(“xx”).getSheetByName(“Blad1”);
var sheet2=SpreadsheetApp.openByUrl(“xx”).getSheetByName(“Blad1”);
var range1=sheet1.getRange(1,1,54,26);
var range2=sheet2.getRange(1,1,10,7);
var data1=range1.getValues();
var data2=range2.getValues();
var-teller=0;
for(var i=0,r=data1.length;i