Cannot read property “length” from undefined. (lin

2019-06-12 11:55发布

问题:

I have written a google Apps Script which is used to filter the data and copy to another sheet. But, Yesterday it was working fine when I open today morning it was showing the error " Cannot read property length from Undefined "

onEdt is a user defined function. Don't compare with onEdit()

    function onEdt( )
{
   var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("data");

      var destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Crunch2");
        var data = source.getDataRange().getValues();
        var copydata = new Array();// this is a new array to collect data
        var ldaps =  [ 'ttp' , 'tnh' , 'pamar' ];
        for(n=0;n<data.length;++n)
    {     // iterate in the array, row by row
          for(i=0;i<ldaps.length;++i)
          {
          if ( data[n][2]==ldaps[i])
          { // if condition is true copy the whole row to target
            if(data[n][0]=="aa")
            {
              if(data[n][1]==41709)
              {
                if(data[n][4] != "-")
                {
                  if(data[n][5] != "YES")
                  {
                    if(data[n][5] != "UNCERTAIN")
                    {
                       if(data[n][5] != "NO")
                       {
                         copydata.push(data[n]);// copy the whole row
                       }
                    }
                  }
                }
              }
            }
          } //if
        }//for
        }
        //Paste to another sheet from first cell onwards
          destination.getRange(1,1,copydata.length,copydata[0].length).setValues(copydata);
}

Can anybody Please help me with the above issue ?

回答1:

You should add a check for copyData in the last line:

         if (copydata.length) { 
             destination.getRange(1,1,copydata.length,copydata[0].length).setValues(copydata);
         }