我有一份工作跟踪电子表格,其中A列表示作业编号和列#34;我"表示作业状态,可以从下拉列表中选择不同的阶段。
我希望在选项"已完成"时将电子邮件发送给一位收件人。被选中用于下拉,也告诉他们相同的工作号码。无论我尝试什么,我们都只能让它适用于对#34; I"的任何更改,而不仅仅是"完成"。任何帮助将不胜感激!
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = "xxx@xxx.co.uk";
var message = '';
if(cell.indexOf('I')!=-1){
message = sheet.getRange('A'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Job List: '+sheet.getName() 'has been updated' ;
var body = sheet.getName() + ' has been updated.\n\n New Job Status: ' + cellvalue + '.\n\nFor Job Number: ' + message + '\n\nVisit ' + ss.getUrl() + ' to view the changes on row: ' + row + '.';
MailApp.sendEmail(recipients, subject, body);
};
答案 0 :(得分:0)
您的代码未在任何位置检查单元格值。我修改了您的代码,并更改了逻辑,以便代码首先检查列字母" I",如果列字母" I"没有编辑,然后停止代码。
然后,如果代码超过该测试,则下一个文本是已编辑单元格的值。运行不需要运行的代码行是没有意义的,如果它不是列"我"或正确的价值。所以我改变了几行代码的顺序。
function sendNotification() {
var activeCellAddress,cellvalue,message,row,sheet,ss;
ss = SpreadsheetApp.getActiveSpreadsheet();
sheet = ss.getActiveSheet();
activeCellAddress = ss.getActiveCell().getA1Notation();
if (activeCellAddress.indexOf('I') === -1){ //If the cell edited is not in column I then quit here
return;
}
cellvalue = ss.getActiveCell().getValue().toString();
if (cellvalue !== "complete") {//The the cell value is not the string complete then quit
return;
}
row = sheet.getActiveRange().getRow();
var recipients = "xxx@xxx.co.uk";
message = sheet.getRange('A'+ sheet.getActiveCell().getRowIndex()).getValue();
var subject = 'Job List: ' + sheet.getName() + 'has been updated';
var body = sheet.getName() + ' has been updated.\n\n New Job Status: ' + cellvalue + '.\n\nFor Job Number: ' + message + '\n\nVisit ' + ss.getUrl() + ' to view the changes on row: ' + row + '.';
MailApp.sendEmail(recipients, subject, body);
};
这行代码中也有错误:
var subject = 'Job List: ' + sheet.getName() + 'has been updated';
缺少一个加号。