У меня есть лист с ответами.Затем я использую функцию QUERY, чтобы вытащить все данные на отдельный лист для действия по следующей формуле:
=QUERY(formsubmissions,"SELECT *")
, где formsubmissions
в именованном диапазоне.
После четырех шагов пользователь выбирает Completed = Ýes ', который запускает следующий скрипт:
function onEdit() {
var sheetNameToWatch = "R+R;
var columnNumberToWatch = 15;
var valueToWatch = "Yes";
var sheetNameToMoveTheRowTo = "Completed";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
sheet.deleteRow(range.getRow());
}
}
Этот скрипт выполняется и работает правильно, перемещая строку в Çompleted
лист и удаление с активного листа.Однако строка удаляется только на мгновение и появляется почти мгновенно.Я предполагаю, что это потому, что он все еще соответствует параметрам QUERY, поэтому он сразу же возвращается.
Как я могу гарантировать, что он останется удаленным, либо изменив запрос, либо изменив скрипт?