如果有人编辑了第一行,则应将电子邮件发送给A.如果有人编辑了第二行,则应将电子邮件发送给B,依此类推。
if (edited cell was in range - first row) {
//do something }
if (edited cell was in range- second row) {
//do something }
等等。
已经尝试过Stack溢出中可用的脚本,所有脚本都基于活动单元格。如果有人拖动行范围内的值,该怎么办?该脚本仅向第一个活动行单元发送电子邮件。
找到了这个,但是当在单元格上拖动值并且我需要超过每行的范围时失败。
function emailNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipient = "me@gmail.com";
var subject = 'Update to '+sheet.getName();
MailApp.sendEmail(recipient, subject, "roster update");
};
答案 0 :(得分:1)
Apps脚本具有简单的编辑事件触发器
https://developers.google.com/apps-script/guides/triggers/
来自onEdit文档:
function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
range.setNote('Last modified: ' + new Date());
}
你会注意到这个触发器被触发时它传递onEdit一个包含这个编辑的大量信息的对象。您可以在以下位置查看对象:
https://developers.google.com/apps-script/guides/triggers/events
此对象包含编辑的Range对象。范围对象文档位于: https://developers.google.com/apps-script/reference/spreadsheet/range
在范围内,您可以使用getA1Notation()方法获取编辑哪些单元格,使用getValues()方法编辑值。