【发布时间】:2016-04-15 12:48:14
【问题描述】:
我在 Google Drive 中有一个电子表格,里面有两张表格“生产”和“萌芽”
对于生产工作表,如果对 A - F 的列进行了更改,我会发送电子邮件通知。此外,如果从工作表中添加或删除行。
以下代码在一定程度上起到了作用:
function onEdit( e ){
//To get email notification if any changes to the perticular cells
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("production");
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = "zeeshanrang@gmail.com";
var message = '';
if(cell.indexOf('C')!=-1){
message = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Update to '+sheet.getName();
var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + row + '». New comment: «' + cellvalue + '». For message: «' + message + '»';
Logger.log(body);
//MailApp.sendEmail(recipients, subject, body);
};
但它会在每次编辑时向我发送一封邮件,这不是必需的。需要每小时发送一次邮件(如果有变化)。同样,现在它只检查 C 列的更改,而不检查其他列的更改。
另外,我无法理解 if(cell.indexOf('C')!=-1) 。有人可以解释一下这句话是什么意思。
TIA
【问题讨论】:
-
我为此使用 Zapier。
-
It (IndexOf) 在没有找到任何东西时返回负数。在您的情况下,如果 Range A1 包含 C 那么这将执行... message = sheet.getrange..
标签: javascript excel google-sheets