Изменение существующего скрипта для поиска дубликатов в Google Sheets и ввода «да» в последнем столбце вместо его окрашивания - PullRequest
0 голосов
/ 26 июня 2018

Я новичок здесь и не знаю, что я делаю. Я нашел сценарий в Интернете и подумал, что он будет работать для того, что мне нужно, но я бы хотел немного его изменить. Любая помощь будет оценена. Я уже немного изменил это. Если это поможет кому-то поделиться формой, я могу это сделать, поскольку она находится только на стадии тестирования.

Я хочу вместо того, чтобы закрашивать дубликаты красным цветом на основном листе, я хочу, чтобы в последнем столбце основного листа было указано «Да». Я также хотел бы игнорировать пустые строки. Это возможно? (Я скопировал скрипт, который сейчас использую ниже)

function findDuplicates() {
  // List the columns you want to check by number (A = 1)
  var CHECK_COLUMNS = [13];

  // Get the active sheet and info about it
  var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("USE THIS SHEET FOR DATA").activate();
  var numRows = sourceSheet.getLastRow();
  var numCols = sourceSheet.getLastColumn();

  // Create the temporary working sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = ss.insertSheet("FindDupes");

  // Copy the desired rows to the FindDupes sheet
  for (var i = 0; i < CHECK_COLUMNS.length; i++) {
    var sourceRange = sourceSheet.getRange(1,CHECK_COLUMNS[i],numRows);
    var nextCol = newSheet.getLastColumn() + 1;
    sourceRange.copyTo(newSheet.getRange(1,nextCol,numRows));
  }

  // Find duplicates in the FindDupes sheet and color them in the main sheet
  var dupes = false;
  var data = newSheet.getDataRange().getValues();
  for (i = 1; i < data.length - 1; i++) {
    for (j = i+1; j < data.length; j++) {
      if  (data[i].join() == data[j].join()) {
        dupes = true;
        sourceSheet.getRange(i+1,1,1,numCols).setFontColor("red");
        sourceSheet.getRange(j+1,1,1,numCols).setFontColor("red");

      }
    }
  }

  // Remove the FindDupes temporary sheet
  ss.deleteSheet(newSheet);

  // Alert the user with the results
  if (dupes) {
    Browser.msgBox("Possible duplicate(s) found and colored red.");
  } else {
    Browser.msgBox("No duplicates found.");
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...