服务错误:使用isblank()的电子表格

时间:2017-03-29 18:15:59

标签: javascript google-apps-script google-sheets spreadsheet

自从2天以来我遇到了一个大问题,我的功能不再适用了:/ “服务错误:电子表格”位于“if(cell.isBlank())”

{{1}}

是我的错还是Google改变了什么? 如何解决问题?

由于

2 个答案:

答案 0 :(得分:2)

结帐link。我猜测代码没有错。只是Google服务器试图吸引您使用更加面向批处理的方法。例如,您可以通过一次调用var datA=sheet.getDataRange().getValues();来获取所有数据,然后将所有数据都放在二维数组中。 Google服务器可以更轻松地处理您的流程,并且它会为您带来更好的效果。我将获取您的代码副本,看看我是否可以为您简化代码。也许你可以让我知道你的数据是什么样的。

我还没有测试过这段代码。如果您可以与我分享您的部分数据,我将很乐意这样做。这应该非常接近。我尝试按照您使用的相同基本方法进行操作,这样您就可以更轻松地找出发生的事情。

function miseEnForme()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sht = ss.getSheetByName("SuiviAdministratif");
  var datrng = sht.getDataRange();
  var datA = datrng.getValues();//datA is a 2 dimensional array starts at zero
  var lastCol = datrng.getLastColumn();

  for(var i=2;i<datA.length;i++)
  {
    if(datA[1][i] == ("RS" || "RP" || "RD"))
    {
      sht.getRange(i+1,1,1,lastCol).setBackground('#ff0000');
    }
    if(datA[1][i] == "C")
    {
      sht.getRange(i+1,1,1,lastCol).setBackground('#00ff00');
    }
    if(datA[1][i] == "O")
    {
      sht.getRange(i+1,1,1,lastCol).setBackground('#ffffff');
    }
  }
}

答案 1 :(得分:1)

正如库珀所说,你的代码不是问题。 否则,一个小的解决方法将帮助您:

function miseEnForme(){
  var classeur = SpreadsheetApp.getActive();
  var feuilleAdm = classeur.getSheetByName("SuiviAdministratif");

  // getLastRow() return the value of the last row used in the sheet
  var lastRow = feuilleAdm.getLastRow();

  for (var i =3; i<lastRow;i++){
   if (feuilleAdm.getRange("B"+i).getDisplayValue()=="RS" || feuilleAdm.getRange("B"+i).getDisplayValue()=="RP" || feuilleAdm.getRange("B"+i).getDisplayValue()=="RD")
     feuilleAdm.getRange("SuiviAdministratif!A"+i+":AB"+i).setBackground("red");

   if (feuilleAdm.getRange("B"+i).getDisplayValue()=="C")
     feuilleAdm.getRange("SuiviAdministratif!A"+i+":AB"+i).setBackground("#00ff00");

   if (feuilleAdm.getRange("B"+i).getDisplayValue()=="O")
     feuilleAdm.getRange("SuiviAdministratif!A"+i+":AB"+i).setBackground("white");
  }
}

有关getLastRow方法的更多信息:https://developers.google.com/apps-script/reference/spreadsheet/sheet#getLastRow()