У меня есть электронная таблица Google, которая содержит названия статей на главном листе (называемые «РЕЗЮМЕ»).В одном из столбцов указано, обсуждалась ли статья в лаборатории или нет («си», «нет»).Когда в столбце написано «si» (да), сценарий копирует название и информацию о бумагах на другой лист, называемый «Семинарии» (семинары), если в столбце говорится «нет», он копирует информацию на другой лист, называемый «DISCUTIR» (для обсуждения.).Скрипт работает нормально (он копирует информацию на соответствующий лист), но у него есть небольшая проблема.Когда мы обсуждаем документ, и я меняю его статус с «нет» на «да», он добавляет его на лист SEMINARIO, но не удаляет его из листа «DISCUTIR».Есть ли способ заставить скрипт обновить весь лист?(Если я удаляю все содержимое листа «DISCUTIR», он добавляет только те, которые мне нужны, но я хочу найти способ сделать это автоматически).
Здесь я прилагаю код, который япользуюсь.Я уверен, что это действительно неопрятно и неэффективно, так как я понятия не имею, что я делаю, поэтому я прошу прощения за это.У меня есть некоторый опыт программирования на MATLAB, но я никогда не использовал JavaScript и просто сумел заставить его работать, копируя и вставляя код.
function onEdit(e) {
var sheetFrom = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ABSTRACTS");
var sheetTo = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SEMINARIOS");
var sheetTo2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DESCARTADOS");
var sheetTo3 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DISCUTIR");
var sheetTo4 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CHEQUEAR");
var data = sheetFrom.getDataRange().getValues();
var target = new Array(); // this is a new array to collect data
for (n = 0; n < data.length; ++n) { // iterate in the array, row by row
if (data[n][8] == "si") { // if condition is true copy the whole row to target
target.push(data[n]); // copy the whole row
} //if
} //for
//Paste to another sheet from first cell onwards
sheetTo.getRange(2, 1, target.length, target[0].length).setValues(target);
var data = sheetFrom.getDataRange().getValues();
var target = new Array(); // this is a new array to collect data
for (n = 0; n < data.length; ++n) { // iterate in the array, row by row
if (data[n][8] == "descartado") { // if condition is true copy the whole row to target
target.push(data[n]); // copy the whole row
} //if
} //for
//Paste to another sheet from first cell onwards
sheetTo2.getRange(2, 1, target.length, target[0].length).setValues(target);
var data = sheetFrom.getDataRange().getValues();
var target = new Array(); // this is a new array to collect data
for (n = 0; n < data.length; ++n) { // iterate in the array, row by row
if (data[n][8] == "no") { // if condition is true copy the whole row to target
target.push(data[n]); // copy the whole row
} //if
} //for
//Paste to another sheet from first cell onwards
sheetTo3.getRange(2, 1, target.length, target[0].length).setValues(target);
var data = sheetFrom.getDataRange().getValues();
var target = new Array(); // this is a new array to collect data
for (n = 0; n < data.length; ++n) { // iterate in the array, row by row
if (data[n][8] == "chequear") { // if condition is true copy the whole row to target
target.push(data[n]); // copy the whole row
} //if
} //for
//Paste to another sheet from first cell onwards
sheetTo4.getRange(2, 1, target.length, target[0].length).setValues(target);
}