当单元格内容从功能更改时,Google Apps脚本会使用onEdit触发电子邮件通知

时间:2016-01-10 02:27:29

标签: google-apps-script google-sheets

我正在尝试修改此脚本,当我手动更改A中的任何内容时,它会起作用,但我希望脚本在A中的单元格内容从公式I更改之前触发有(importXML)从另一个站点提取数据。它只是一个工作表,只有一个importxml函数。

    function sendNotification() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getActiveSheet();
      var cell = ss.getActiveCell().getA1Notation();
      var row = sheet.getActiveRange().getRow();
      var cellvalue = ss.getActiveCell().getValue().toString();
      var recipients = "@gmail.com";
      var message = '';
      if(cell.indexOf('A')!=-1){ 
        message = sheet.getRange('A'+ 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 + '»';
      MailApp.sendEmail(recipients, subject, body);
    }

1 个答案:

答案 0 :(得分:0)

我假设您的触发功能是“发送通知”,

function sendNotification(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var recipients = "reciever@gmail.com";
  var message = '';
  var range = event.range;
  if ( (range.getColumn() == 1) && (event.value != event.oldValue)) {
    message = event.value;
    var subject = 'Update to '+sheet.getName();
    var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + range.getRow() + '». New comment: «' + event.value + '». For    message: «' + message + '»';
    MailApp.sendEmail(recipients, subject, body);
  }
}

另外,您可能需要手动配置触发器,

  • 选择资源 - >当前项目的触发器。 - >单击链接添加 现在一个。
  • 在“运行”下,选择要由触发器执行的功能。 (在 你的情况" sendNotification(e)")
  • 在“活动”下,选择“来自电子表格。”
  • 从下一个下拉列表中选择On On edit。
  • 点击保存。

享受