Я использую Google Apps Script, чтобы написать скрипт для редактирования Google Sheets для списка рассылки. Мне бы хотелось, чтобы он прошел через все строки и удалил все строки с «BOUNCED», «ERROR» или «NO_RECIPIENT» в определенной ячейке.
Проблема, с которой я столкнулся, заключается в том, что For Loop
использует скобки [ ]
для обозначения строк и столбцов, что индексирует первую строку в 0
. Действие deleteRows()
использует изогнутые скобки, которые индексируют первую строку в 1. По этой причине у меня возникают проблемы при удалении правильной строки.
Если я запрограммирую deleteRow(i)
, он удаляет строку, следующую за проверяемой For loop
. Если я запрограммирую deleteRow(i+1)
, он удаляет правильную строку в первый раз, но впоследствии удаляет следующую строку. Смотрите мой код ниже:
function cleanUp() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var data = sheet.getDataRange().getValues();
for ( var i = 1; i < 30; i++) {
if (data[i][9] === 'ERROR' || data[i][9] === 'BOUNCED' || data[i][9] === 'NO_RECIPIENT') {
sheet.deleteRow(i+1);
}
}
}