谷歌应用程序脚本onEdit?(Google App script onEdit?)

2019-07-03 13:45发布

真的觉得我的思念与电子表格的对象脚本的东西。

我试图通过电子邮件自动合作者onEdit。 我成功发送时明确runnign脚本测试,但onEdit事件似乎永远不会被炒鱿鱼(没有看到日志消息偶数)。 脚本似乎很简单。

function onEdit(e) {
  var sheet = e.source;
  var viewers = sheet.getViewers();
  var ct = viewers.length;
  var recipients = [];
  for(var i=0;i<ct;i++){
    recipients.push(viewers[i].getEmail());
  };
  var subject = 'Update to '+sheet.getName();
  var body = sheet.getName() + ' has been updated.  Visit ' + sheet.getUrl() + ' to view the changes ' + e.range;

  Logger.log('Running onedit');

  MailApp.sendEmail(recipients, subject, body);
};

Answer 1:

简单onEdit功能都有一套非常有限的可能采取的行动,因为它在运行时的潜在用户的授权。 你必须创建另一个功能,并设定具体的触发此功能。(可安装触发)

见这个职位作为一个例子。 它表明这是在解释简单onEdit和安装编辑(电子邮件发送)的实例文档在这里 。

编辑:这里是你的代码的工作:

function sendAlert() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var cell = ss.getActiveCell().getA1Notation()
  var viewers = ss.getViewers();
  var ct = viewers.length;
  var recipients = [];
  for(var i=0;i<ct;i++){
    recipients.push(viewers[i].getEmail());
  };
  var subject = 'Update to '+sheet.getName();
  var body = sheet.getName() + ' has been updated.  Visit ' + ss.getUrl() + ' to view the changes on cell ' + cell;
  MailApp.sendEmail(recipients, subject, body);
};


文章来源: Google App script onEdit?