Apps Script не удаляет строки - PullRequest
0 голосов
/ 12 марта 2019

Когда я запускаю следующую функцию в моем листе:

    function removeDuplicateRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var column = sheet.getRange('D580:D');
  var data= column.getValues();
  var newData = new Array();
  for(i in data){

    var row = data[i];
    var duplicate = false;
    for(j in newData){

      if(row.join() == newData[j].join()){

        duplicate = true;

      }

    }
    if(!duplicate){
      newData.push(row);

    }
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

}

Ничего не происходит, просто время ожидания. Кажется, это связано с моей переменной 'column', когда я определяю диапазон. Если я оставлю это поле пустым, оно будет запущено, но я не хочу, чтобы оно попадало в первые 580 строк. Кто-нибудь знает, почему это происходит?

Спасибо за любую помощь,

1 Ответ

1 голос
/ 12 марта 2019

Попробуйте это:

function removeDuplicates() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getRange(580,4,sh.getLastRow(),1);
  var vA=rg.getValues();
  var uA=[];
  var dC=0;
  for(var i=0;i<vA.length;i++) {
    if(uA.indexOf(vA[i].join())==-1) {
      uA.push(vA[i].join());
    }else{
      sh.deleteRow(i + rg.getRow() - dC);
      dC++;
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...