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!
参见:
我现在只能在 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!
参见: