Я дошел до того, что у меня есть довольно солидный скрипт, который:
1) Извлекает данные из новой вкладки данных и публикует их на существующей вкладке данных
2) Удаляет данные из новой вкладки данных
3) Удаляет дубликаты из существующей вкладки данных
Когда я изначально вставил этот скрипт, он работал отлично. Но после его запуска несколько раз кажется, что он останавливается в части сценария, исключающей дублирование. Поэтому, когда я запускаю его, запускаются первые два скрипта, но не третий. Если я выберу скрипт de-dupe для запуска сам по себе, он будет работать просто отлично.
Кто-нибудь еще видел эту проблему? Есть ли способ настроить скрипт на более надежный запуск, чтобы он всегда обрабатывал все три сценария?
Не уверен, как оттуда оптимизировать.
function Run(){
insert();
clear1();
removeDuplicates();
}
function insert() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName('Candidate Refresh'); // change here
var des = ss.getSheetByName('Candidate Listing'); // change here
var sv = source
.getDataRange()
.getValues();
sv.shift();
des.insertRowsAfter(1, sv.length);
des.getRange(2, 1, sv.length, source.getLastColumn()).setValues(sv);
}
function clear1() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Candidate Refresh');
sheet.getRange('A2:K100').clearContent()
}
function removeDuplicates() {
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getLastRow();
var firstColumn=sheet.getRange(1, 2, rows, 1).getValues();
firstColumn = firstColumn.map(function(e){return e[0]})
var uA=[];
for (var i=rows;i>0;i--) {
if (uA.indexOf(firstColumn[i-1])!=-1) {
sheet.deleteRow(i);
}else{
uA.push(firstColumn[i-1]);
}
}
}
Все три сценария должны запускаться при запуске сценария запуска.