首页 > 解决方案 > 在下拉更改时发送电子邮件,GAS 不会进行

问题描述

我正在努力做到这一点,以便当下拉单元格显示“发送”时发送一封电子邮件。电子邮件地址和消息需要是动态的。onEdit 事件正在触发,但在声明 emailAddress 时它会停止。为什么会这样?我有很多 VBA 经验,但很少有 GAS 经验。

/*
 * on sheet change, if correct cell
 */
function onEdit(e) {      
  if (e.range.getSheet().getName() === 'Sheet1') {
    var sheet = SpreadsheetApp.getActiveSheet();
    if (e.range.getA1Notation() === 'D2' && e.value === 'Send') {
        sheet
          .getRange('D2')
            .clearContent(); 
      logIt('good through here');
    var emailAddress = sheet.getRange(2, 1).getValue;
      logit('will not show');
    var message = sheet.getRange(2, 2).getValue;
    var subject = "GAS -- Automated Email";
    MailApp.sendEmail(emailAddress, subject, message);
      logIt('testEnd');
    }
  }    
}

function logIt(message) {
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().appendRow([new Date(),message]);
}

标签: google-apps-scriptgoogle-sheets

解决方案


编辑时无法发送电子邮件:

查看此应用程序脚本上的“限制”简单触发器说明。

https://developers.google.com/apps-script/guides/triggers

此外,您的“将不显示”消息未显示,因为您有错字:logit 而不是 logIt。


推荐阅读