我在脚本中添加了仅当列'C'中的任何内容更改时,它才会通过电子邮件通知我。
但是到目前为止,即使列A到Q都被更改,我也已经收到了一封电子邮件。有人可以帮助我吗?
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = SpreadsheetApp.getActiveSheet();
if (s.getName() == 'OUT OF STOCK') {
var cell = s.getActiveCell().getA1Notation();
var row = s.getActiveRange().getRow();
var cellvalue = s.getActiveCell().getValue().toString();
var recipients = "ringo@ledstores.nl";
var message = '';
if(cell.indexOf('CC')!=-1){
message = s.getRange('CC'+ s.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Update to '+s.getName();
var body = s.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + row + '». New comment: «' + cellvalue + '». For message: «' + message + '»';
MailApp.sendEmail(recipients, subject, body);
}
};
答案 0 :(得分:0)
几个小时后,我自己尝试修复自己的代码,然后我提出了解决方案!希望与可以帮助他们的其他人分享。
function onEditTrigger(e){
var range = e.range;
var intCol = range.getColumn();
if (intCol == 3)
{
var intRow = range.getRow();
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(intRow, 1, 1, 3);
var dataValues = dataRange.getValues();
var s = SpreadsheetApp.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var row = s.getActiveRange().getRow();
var cellvalue = s.getActiveCell().getValue().toString();
var recipients = "youremail@here.com";
var message = '';
if (s.getName() == 'Sheet name'){
var subject = 'Update to '+s.getName();
var body = s.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + row + '». New comment: «' + cellvalue + '»';
MailApp.sendEmail(recipients, subject, body);
}
}
}