我想在特定單元格(即文檔)更新時向某人發送通知。具體來說,當一行中的單元格被更新時,它會向在同一行中列出的所有者發送通知。例如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