OnEdit 仅在手动编辑单元格时触发

OnEdit only triggering when manually editing a cell

我现在只能在 sheet 中的单元格中添加了内容时发送电子邮件,而不是在删除内容时发送电子邮件。但是,它只会在我手动添加一个值时触发一封电子邮件,而不是在通过它链接到的 appsheet 添加一个值时触发。我知道这是可能的,因为当我昨天玩它时,我可以通过应用程序 sheet 从我的 phone 收到电子邮件以触发,但现在只有当我在单元格中随机输入一些内容并按下进入。我只是看不出这有什么问题。有人可以帮忙吗?谢谢!

function sendEmail() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet4=ss.getSheetByName('Copy');
  var emailAddress = sheet4.getRange(2,12).getValue();
  var subject = sheet4.getRange(2,13).getValue();
  var message = sheet4.getRangeList(['G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8'])
    .getRanges()
    .map(range => range.getDisplayValue())
    .join('\n');
MailApp.sendEmail(emailAddress, subject, message);
}

function onEdit(e) {

  if (e.source.getActiveSheet().getName() === `Trigger`) {
    if (e.range.rowStart >= 1 && e.range.columnStart >= 1) {
      if (`value` in e) sendEmail()
    }
  }
}

对于 AppSheet 'edits',您将不得不使用 onChange()

尝试:

function onChange(e) {

  if (e.source.getActiveSheet().getName() === `Trigger`) {
    if (e.source.getActiveRange().getRow() >= 1 && e.source.getActiveRange().getColumn() >= 1) {

      if (e.source.getActiveRange().getValue() !== ``) sendEmail()

    }
  }

}

注意:这指定仅适用于单个单元格编辑。

让我知道这是否适用于您的 AppSheet!

参见: