Почему этот код не находит столбец, указанный в моем .getDataRange? - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь удалить строки на основе значения в ячейках столбца 'D' - строка за строкой.

Оператор for работает нормально и ведет обратный отсчет с последней строки с данными, как я знаю, при удалении ячеек вы должны начинать снизу и идти вверх.

Но по какой-то причине он продолжает говорить «Невозможно прочитать свойство 3» из неопределенного.

Я попытался переместить .getDataRange, попытался изменить все это для работы на .getRange (безрезультатно и более сложно), и я изменил положение большей части кода, чтобы посмотреть, помогает ли это. Не могу за всю жизнь найти решение этой проблемы.

function removeResolvedRows(){

 var snowData_dataRange = snowData.getDataRange().getValues()

 var snowData_lastRow = snowData.getLastRow()

 var nPDN = newPriorDayData.filter(String).length;

 var current_row = +nPDN

for (var n = current_row; n < snowData_lastRow; n--){      

 var status = snowData_dataRange[n][3];

if (status == 'Resolved'){

 snowData.deleteRow[n];

if (n == 0) break;

}                 
}
}

Что я хотел бы сделать, так это перебрать [current_row][Column D], если там написано Resolved, удалите эту строку. Промойте и повторяйте до current_Row == 0, затем разбивайте. В настоящее время он не найдет столбец D.

1 Ответ

0 голосов
/ 05 апреля 2019

Не знаю, что делают эти две строки.

var nPDN = newPriorDayData.filter(String).length;
var current_row = +nPDN;

Поэтому я выбрал простое решение, которое позволяет добавлять вещи в соответствии с вашими потребностями.Он проверяет Resolved в столбце D и, если найден, удаляет строку.

function removeResolvedRows() {
  var values = snowData.getDataRange().getValues();
  var rows_num = snowData.getLastRow();

  for (var n = rows_num; n > 0; n--) {
    if (values[n-1][3] == 'Resolved') {
      snowData.deleteRow(n);
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...