我希望在 Google 表格中選中復選框時發送電子郵件。有沒有人有我可以使用的好代碼?
例如:當 F 列復選框被選中時,它會自動發送一封電子郵件,如附件圖片。
抱歉,我完全不了解腳本,也不知道從哪里開始。
在此處輸入圖片說明
uj5u.com熱心網友回復:
選中 A1 中的復選框時發送電子郵件
function sendEmailWhenCheckBoxIsChecked(e) {
const sh = e.range.getSheet();
if(sh.getName() == 'Send Emails' && e.range.columnStart==1 && e.range.rowStart == 1 && e.value == "TRUE") {
e.range.setValue('FALSE');
GmailApp.sendEmail("your email addres","The subject","The message");
}
}
創建可安裝的觸發器
function createTriger() { if(ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == 'sendEmailWhenCheckBoxIsChecked').length ==0) { ScriptApp.newTrigger('sendEmailWhenCheckBoxIsChecked').forSpreadsheet(ss.getActive ()).onEdit().create(); } }
可安裝的觸發器
uj5u.com熱心網友回復:
這與可安裝的觸發器一起運行。如果您不想要可安裝的觸發器,您可以將函式更改sendEmailWhenBoxIsChecked()為onEdit(),洗掉onOpen()函式并擺脫wholeSheet變數。
如果您有任何問題,請告訴我。
const wholeSheet = SpreadsheetApp.getActive();
let sheetName = "name of your sheet";
let activeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
function sendEmailWhenBoxIsChecked() {
let columnIndexOfCheckbox = 6; //column index of where your checkbox is located
let rowIndexOfCheckbox = 2; //column index of where your checkbox starts
let activeCellOfActiveSheet = activeSheet.getActiveCell();
if (
activeCellOfActiveSheet.getColumn() === columnIndexOfCheckbox
&& activeCellOfActiveSheet.getRowIndex() >= rowIndexOfCheckbox
&& !activeCellOfActiveSheet.isBlank()
) {
let checkbox = activeSheet.getActiveCell();
if (checkbox.isChecked()) {
GmailApp.sendEmail("recipient email", "Email header", "Email content or body");
}
}
}
function onOpen() {
let createTrigger = true;
ScriptApp.getProjectTriggers().forEach(trigger => {
if (trigger.getEventType() === ScriptApp.EventType.ON_EDIT && sendEmailWhenBoxIsChecked.name === trigger.getHandlerFunction()) createTrigger = false;
});
if (createTrigger) {
ScriptApp.newTrigger(sendEmailWhenBoxIsChecked.name)
.forSpreadsheet(wholeSheet)
.onEdit()
.create();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/358832.html
