Первые строки вашей функции removeDuplicate и findDuplicate, похоже, действительно указывают на то, что вы ссылаетесь на активную электронную таблицу / лист / диапазон
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
var data = range.getValues();
Если вы хотите использовать одну и ту же функцию дляДля данной таблицы / листа / диапазона, которая не является активной, вам нужно будет использовать другие функции, кроме getActiveXXX ().
Например, чтобы получить лист с именем «Черный список», вы должны использовать sheet = spreadsheet.getSheetByName("Blacklist")
(см. также https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getsheetbynamename)
Если вы хотите получить доступ к определенному диапазону, который отличается от активного диапазона, вам следует использовать метод getRange (см. также https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getrangea1notation) Обратите внимание, что метод getRange можно использовать вдругими способами, например getRange("A1:D4")
, getRange(1, 1, 3, 3)
(параметры, соответственно, startRow, startColumn, numRows, numColumns)
Кроме того, если вы не хотите жестко задавать последнюю строку ваших 2 столбцов, вы будетеСкорее всего, эта функция нужна для поиска последней строки в коде: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getlastrow (там также есть пример, показывающий, как использовать getRange () in комбинация с getLastRow ()).
Надеюсь, это поможет вам двигаться дальше. Обратите внимание, что я не проверял остальную часть вашего кода и просто предположил, что ваша логика дедупликации работает нормально, как вы упомянули об этом в своем комментарии.
Удачи!