无法将工作表行转换为Google脚本中的类错误

时间:2018-12-30 16:55:28

标签: google-apps-script google-sheets

我正在尝试使用脚本删除基于Google工作表中最后一行的重复值的行。在这种情况下,它将是具有“ hi”值的行,但是我不确定如何解决此错误:

无法将Mon Dec 31 2018 00:15:41 GMT + 0800(HKT),hi转换为(class)。 (第18行,文件“代码”)

这是我的代码:

// retrieve sheet data and store into variable
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();

// get last row value from column B(target column)
var col_len = data.length
var lastRow = data[col_len-1][1];
var index = new Array();

function check_dup(){
  for(i=0; i<data.length;i++){
    if(lastRow === data[i][1]){
      index.push(i);
    }
  }

  //error from this line
  for(i=index.length-2;i>=1;i--){
    sheet.deleteRow(data[index[i]]);
  }
} 

sheet

1 个答案:

答案 0 :(得分:1)

删除第2列中与最后一行具有相同数据的所有行

据我了解,您的问题是删除与第2列中的数据相同的所有与最后一行相同的行。

function removeDup() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var targetData=data[data.length-1][1];//last row column 2 is target data 
  var d=0;//number of rows deleted 
  for(var i=1;i<data.length-1;i++){ //start at one to skip header row and don't go to last row
    if(data[i][1]==targetData){//if it matches targetData then delete row
      sheet.deleteRow(i-d+1);
      d++;//increment delete counts because the row got delete the data array is still the same size.
    }
  }
}

关于在堆栈溢出时删除重复行的主题,有很多答案。稍作搜索,您就会找到它们。