Как поймать последнее обновление в листе

У меня есть три формы Google, которые представляют данные на другой лист в электронной таблице. Google Forms записывают отметку времени в первом столбце при отправке данных. Моя вызванная функция отправляет уведомление по электронной почте о отправке данных в электронную таблицу из GForm. Мне нужно различное содержание уведомления в зависимости от листа таблицы, куда отправляются данные.

Я думаю об этом:

  1. получить последнее обновление таблицы
  2. переключить первый лист на лист действий
  3. найти дату, равную данным последнего обновления в листе действий, если дата не установлена, переключиться на следующий лист и найти дату последнего обновления...... если дата основана
  4. получить название листа действий
  5. отправить уведомление о содержании

Итак, думаю, что это слишком сложно. Конечно, я могу создать много таблиц со многими сценариями, и каждый сценарий будет отправлять различные уведомления, но это не эргономично. Спасибо!

2 ответа

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

Вы можете получить значения в eventinfo следующим образом:

  Logger.log('row = '+e.range['rowEnd'] + ' timestamp = '+e.namedValues['Timestamp'] )

Я не тестировал дальше, поэтому, пожалуйста, обновите здесь, он работал как ожидалось (или нет).

Может быть, вы можете добавить триггер onEdit:

function onEdit() {
    var s = SpreadsheetApp.getActiveSheet();
    var sheet_name = s.getName();

    //you can also add a code to get row and col, timestamp, etc.
}

Примечание: не проверял этот код. Я полагаю, это то, что вы хотите.

Другие вопросы по тегам