1

我希望设置一些东西,仅在更改特定的单个单元格时才发送通知。我几乎没有编码经验,并且对需要到位的内容有一个大致的了解。根据我收集的信息,我创建了一个脚本,但它具有所有单元格更改的通知。任何有关更改为仅通知单个单元格的建议将不胜感激。

function emailNotification() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    var cell = ss.getActiveCell().getA1Notation();
    var cellvalue = ss.getActiveCell().getValue().toString();
    var recipient = "mail@mail.com";
    var subject = 'Update to '+sheet.getName();
    var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on cell: «' + cell + '» New cell value: «' + cellvalue + '»';
    MailApp.sendEmail(recipient, subject, body);
};
4

3 回答 3

0

假设“更改”是指手动编辑,为了将脚本“限制”到某个工作表和/或某个单元格,您必须检查当前编辑的单元格是什么。例如:如果您只希望在编辑 Sheet1 的单元格 A1 时触发脚本,请尝试以下操作:

function emailNotification(e) {
var sheet = e.source.getActiveSheet();
if (sheet.getName() !== 'Sheet1' || e.range.getA1Notation() !== 'A1') return;
var recipient = "mail@gmail.com";
var subject = 'Update to ' + sheet.getName();
var body = sheet.getName() + ' has been updated.\nVisit ' + e.source.getUrl() + ' to view the changes on cell A1.\nNew cell value: «' + e.value + '»';
MailApp.sendEmail(recipient, subject, body);
};

更改工作表名称和单元格以适合,看看这是否有效?

于 2015-12-04T08:42:40.657 回答
0

尝试改变

var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();
to
var cell = ss.getRange(row, column); //Put in the row and column of your cell
var cellvalue = cell.getValue().toString();
于 2015-12-03T02:32:28.643 回答
-1
var cell = ss.getRange("F2:F50"); //Put in the row and column of your cell

我也在处理这个问题。如果编辑了任何单元格,脚本仍会发送通知,而不仅仅是 F 列

于 2015-12-03T23:01:49.943 回答