Друзья, наш подписчик Дмитрий обратился за помощью - у него завёлся сотрудник, который удаляет в таблице строки, нужно как-то про это узнавать.
Мы написали короткий скрипт, он ниже
function onCha(e) {
if (e.changeType != 'REMOVE_ROW') { return; };
const sh = e.source.getActiveSheet();
const shName = sh.getName();
const range = sh.getActiveRange();
const startRow = range.getRow();
const numRows = range.getNumRows();
const msg = `В Таблице, на листе ${shName}, начиная со строки ${startRow} удалено ${numRows} ${plural(numRows)}, примите меры`;
GmailApp.sendEmail('grclubpoker@gmail.com', 'удалены строки', msg);
};
function plural(n) {
const forms = ["строка", "строки", "строк"]
n = Math.abs(n) % 100;
const n1 = n % 10;
if (n > 10 && n < 20) return forms[2];
if (n1 > 1 && n1 < 5) return forms[1];
if (n1 === 1) return forms[0];
return forms[2];
};
При удалении строки скрипт отправит на введённую почту (в примере это grclubpoker@gmail.com) сообщение, как на скриншоте.
Чтобы скрипт заработал:
1) поместите его в редактор скриптов в своей Таблице
2) Кликните на секундомер и откройте триггеры
3) Добавьте триггер: функцию onCha на тип события "Change / При изменении"
Этот устанавливаемый триггер будет реагировать на изменения структуры Таблицы, к ним относится и удалении строк.
А еще в коде функция
plural, она склоняет строки в завимости от их количества :)🐟 Заказать работу у нас: @namokonov
