Очистить ошибку скрипта при вводе формы на следующий день

Я использую следующий скрипт для очистки записей формы Google в полночь каждый день.

function clearRange() {
    var sheetActive = SpreadsheetApp.openById("1DNeHRC41ryRY9s8wZmlqmoIEhm8MqD601BvqoV26V3o").getSheetByName("Form responses 1");
    sheetActive.getRange('A2:E').clearContent();
}

Проблема:

  • На следующий день записи формы добавляются на лист, начиная со строки ниже записей предыдущего дня, а не со строки 2.

Пример:

  • Вчера на листе было внесено 10 форм (строки со 2 по 11). Сценарий запускается в полночь и очищает записи.
  • Сегодня в форму было введено пять записей, но начиная с 12-й строки.

Мне нужно, чтобы лист очищался и сбрасывался, чтобы каждый день начинать вводить записи формы в строке 2.

Это возможно? Если да, то какие изменения необходимы в формуле? Спасибо за помощь.


person Terry Heath    schedule 25.08.2020    source источник


Ответы (1)


Решение:

Вместо этого попробуйте удалить строки:

function clearRange() {
  const sheetActive = SpreadsheetApp.openById("1DNeHRC41ryRY9s8wZmlqmoIEhm8MqD601BvqoV26V3o").getSheetByName("Form responses 1");
  const form_size = sheetActive.getLastRow()-1;
  sheetActive.deleteRows(2, form_size);
}

Прежде чем начать использовать это решение, только в первый раз удалите вручную все строки; начиная со второй строки до тех пор, пока не будет добавлена ​​строка перед новой записью. Таким образом, новая запись будет во втором ряду.

Рекомендация:

Однако не рекомендуется трогать лист Ответы формы. Я бы посоветовал вам создать отдельный лист для запроса только записей за сегодняшний день и оставить необработанные данные на листе Ответы формы. Таким образом, вам не нужно очищать или удалять старые записи формы, но вы также не затрагиваете необработанные данные, которые могут использоваться в качестве справочных в будущем.

Использованная литература:

person soMario    schedule 25.08.2020