2015-12-02 2 views
1

Я ищу, чтобы настроить что-то, где уведомления отправляются только в случае изменения конкретной отдельной ячейки. У меня мало опыта кодирования и есть общее представление о том, что должно быть на месте. Из того, что я собрал, я создал скрипт, но он имеет уведомления для всех изменений ячейки. Любые предложения по изменению только для уведомления в одной ячейке будут оценены.Google Spreadsheets: уведомления по электронной почте для одиночной ячейки

function emailNotification() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 
    var cell = ss.getActiveCell().getA1Notation(); 
    var cellvalue = ss.getActiveCell().getValue().toString(); 
    var recipient = "[email protected]"; 
    var subject = 'Update to '+sheet.getName(); 
    var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on cell: «' + cell + '» New cell value: «' + cellvalue + '»'; 
    MailApp.sendEmail(recipient, subject, body); 
}; 

ответ

0

Попробуйте изменить

var cell = ss.getActiveCell().getA1Notation(); 
var cellvalue = ss.getActiveCell().getValue().toString(); 
to 
var cell = ss.getRange(row, column); //Put in the row and column of your cell 
var cellvalue = cell.getValue().toString(); 
-1
var cell = ss.getRange("F2:F50"); //Put in the row and column of your cell 

Я работаю с этим, а также. Сценарий по-прежнему отправляет уведомление, если какая-либо ячейка отредактирована, а не только столбец F

+0

JPV Вы являетесь героем! Спасибо. Теперь он сужается до одной ячейки. Чтобы завершить проект, я должен отправить уведомление, если отредактировала ЛЮБАЯ ячейка в ROW F. 'if (sheet.getName()! ==' Sheet1 '|| e.range.getA1Notation()! ==' A1 ') return;' Я редактировал «A1», чтобы прочитать «F: F». Это не сработало. Я также пробовал «F2, F3, F4». Это не сработало –

0

Предполагая, что с помощью «изменений» вы имеете в виду ручные изменения, чтобы «ограничить» сценарий определенным листом и/или определенной ячейкой должен будет проверить, что представляет собой отредактированная ячейка. Например: если вы хотите, чтобы сценарий выстрелить, когда ячейка А1 Лист1 редактируется, попробовать что-то вроде:

function emailNotification(e) { 
var sheet = e.source.getActiveSheet(); 
if (sheet.getName() !== 'Sheet1' || e.range.getA1Notation() !== 'A1') return; 
var recipient = "[email protected]"; 
var subject = 'Update to ' + sheet.getName(); 
var body = sheet.getName() + ' has been updated.\nVisit ' + e.source.getUrl() + ' to view the changes on cell A1.\nNew cell value: «' + e.value + '»'; 
MailApp.sendEmail(recipient, subject, body); 
}; 

изменить имя листа и ячейки в соответствии с и посмотреть, если это работает?

Смежные вопросы