我想在特定单元格(即文档)更新时向某人发送通知。具体来说,当一行中的单元格被更新时,它会向在同一行中列出的所有者发送通知。例如B47被更新,它发送一封电子邮件给B3。您是否可以在Google Script中为多张表单发送通知?
当脚本指向一张工作表时,我已经获得脚本工作。但是,当我尝试要求脚本运行多个工作表/选项卡时,出现错误'找不到脚本函数:sendNotification'是否可以让此脚本在同一个Google文档中的多个工作表/选项卡上工作?更新从不同的来源拉,所以我想继续使用getSheetbyName而不是getActiveSheet。
任何帮助将不胜感激。这里是我的代码,它的立场:
function shellFunction() {
var sheets = ['Arabic', 'Portuguese'];
for (var s in sheets) {
toTrigger(sheets[s]);
}
function toTrigger(sheetName) {
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheets[s]);
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = sheet.getRange('J' + sheet.getActiveCell().getRowIndex()).getValue();
var message = '';
if (cell.indexOf('B') != -1) {
message = sheet.getRange('A' + sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'The ' + sheet.getRange('F' + sheet.getActiveCell().getRowIndex()).getValue() + ' ' + sheet.getRange('A' + sheet.getActiveCell().getRowIndex()).getValue() + ' needs your Translation';
var body = sheet.getRange('A' + sheet.getActiveCell().getRowIndex()).getValue() + ' has been updated. Can you please update ' + sheet.getRange('G' + sheet.getActiveCell().getRowIndex()).getValue() + '? Please remember to update the date column in the Resource Document when the translation is complete:' + ss.getUrl();
MailApp.sendEmail(recipients, subject, body);
}
}
}
我仍然得到'更新脚本函数未找到:sendNotification'。 sendNotification仅在脚本指向一个工作表时才起作用? – Wildsea
在上面的答案中查看编辑 –
谢谢@Karl_S看起来像这样做了。剩下的一个问题就是我遇到了 - 当我添加新工作表时,我收到'无法发送电子邮件:无收件人'错误。有没有一种方法可以让脚本运行,如果没有一张表缺少电子邮件地址? – Wildsea