Я создал простой лист задач в Листе Google, который позволяет пользователю вводить заметки. У меня есть 4-й столбец a Да/Нет проверки данных, если задача завершена или нет. Я написал код, который сохранит завершенные задачи на другом листе под названием «Back Log». Вот мой код:Цикл «За» не обрабатывает все строки данных
function Clear() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main Note");
var ss1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Back Log");
var u;
var values = ss.getDataRange().getValues();
var Rangecopy
var rowNum2 = ss1.getLastRow();
var rowNum3 = rowNum2 +1
var Rangecopyto
var colNum = 4;
for (u=1;u<values.length +1;u++) {
if (ss.getRange(u,colNum).getValue() =="Yes") {
Rangecopy = ss.getRange(u,1,1,5)
Rangecopyto = ss1.getRange(rowNum3,1,1,5);
Rangecopy.copyTo(Rangecopyto);
Rangecopy.clearContent();
rowNum3 = rowNum3 +1;
}
}
}
Код делает то, что я ожидаю, за исключением того, что он всегда оставляет последнюю запись нетронутой. Был бы признателен за любую помощь в выяснении причин. Я добавил +1 к значениям.length, который дает мне результат, который я искал, но я думаю, что может быть более правильный способ сделать это.
Я получаю недопустимую ошибку диапазона, когда я меняю u в цикле for на 0. Я также добавил новая строка, чтобы сначала объявить значение u. Я отредактировал код, чтобы подумать об изменениях. –