Я новичок в скриптах Google / Javascript, и у меня проблема с тем, как я предполагаю, как я ссылаюсь на определенные ячейки. Я ухожу от кода, который нашел здесь в Google (https://developers.google .com / apps-script / articles / remove_duplicates), за исключением того, что вместо удаления повторяющихся строк (что и делает их сценарий) я вместо этого хочу покрасить фон первой ячейки в оранжевый цвет. В настоящий момент это работает некорректно, вместо этого некоторые повторяющиеся ячейки окрашены, а некоторые нет, а некоторые не повторяющиеся ячейки окрашены, а некоторые нет. Я предполагал, что, поскольку массив имеет индекс 0, а лист индексирован 1, мне нужно было сделать sheet.getRange (i + 1,1), но это дает мне ошибку. Может ли кто-нибудь помочь мне подтолкнуть меня в правильном направлении?

function checkDuplicates() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var newData = new Array();
  for(i in data){
    var row = data[i];
    var duplicate = false;
    for(j in newData){
      if(row[0] == newData[j][0]){
        duplicate = true;
        Logger.log(i,j)
        var dup = sheet.getRange(i,1);
        dup.setBackground('orange')        
      }
    }
    if(!duplicate){
      newData.push(row);
    }
  }
 }
1
efreeman 19 Июл 2017 в 03:16

1 ответ

Лучший ответ

Я поигрался с этим и обнаружил, что так мне больше подходит.

  function checkDuplicates() 
  {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var newData = new Array();
  for(var i=0;i<data.length;i++){//changed loop
    var row = data[i];
    var duplicate = false;
    for(var j=0;j<newData.length;j++){//changed loop
      if(row[0] == newData[j][0]){
        duplicate = true;
        Logger.log('%s,%s',String(i),String(j));//got and error saying that it required string parameters
        var dup = sheet.getRange(i+1,1);//changed to i+1
        dup.setBackground('orange')        
      }
    }
    if(!duplicate){
      newData.push(row);
    }
  }
 }
0
Cooper 19 Июл 2017 в 03:47
Вроде работает неплохо, спасибо за исчерпывающий отзыв!
 – 
efreeman
19 Июл 2017 в 04:15